message: [RPC] validate proposal amount earlier
  the requested proposal payout amount can be checked earlier in the
  command pipeline; returns a more detailed message on error.
diff: @@ -75,15 +75,19 @@ void checkBudgetInputs(const UniValue& params, std::string &strProposalName, std
  int nBlockMin = pHeight - (pHeight % budgetCycleBlocks) + budgetCycleBlocks;
  nBlockStart = params[3].get_int();
  - if ((nBlockStart < nBlockMin) || ((nBlockStart % budgetCycleBlocks) != 0)) {
  + if ((nBlockStart < nBlockMin) || ((nBlockStart % budgetCycleBlocks) != 0))
  throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Invalid block start - must be a budget cycle block. Next valid block: %d", nBlockMin));
  - }
  address = params[4].get_str();
  if (!address.IsValid())
  throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid PIVX address");
  nAmount = AmountFromValue(params[5]);
  + if (nAmount < 10 * COIN)
  + throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Invalid amount - Payment of %d is less than minimum 10 PIV allowed", FormatMoney(nAmount)));
  +
  + if (nAmount > budget.GetTotalBudget(nBlockStart))
  + throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Invalid amount - Payment of %d more than max of %d", FormatMoney(nAmount), FormatMoney(budget.GetTotalBudget(nBlockStart))));
  }
  UniValue preparebudget(const UniValue& params, bool fHelp)
  