message: Replace some FC_ASSERTs with EOS_ASSERTs
  Throw more accurate exception types during trx validation rather than
  merely assert_exception's. Also, add a message to the exception
  explaining what went wrong.
diff: @@ -509,14 +509,17 @@ void database::validate_referenced_accounts( const signed_transaction& trx )cons
  for(const auto& msg : trx.messages) {
  get_account(msg.sender);
  get_account(msg.recipient);
  - const account_name* prev = nullptr;
  - for( const auto& acnt : msg.notify ) {
  - get_account( acnt );
  - if( prev )
  - FC_ASSERT( acnt < *prev );
  - FC_ASSERT( acnt != msg.sender );
  - FC_ASSERT( acnt != msg.recipient );
  - prev = &acnt;
  + const account_name* previous_notify_account = nullptr;
  + for(const auto& current_notify_account : msg.notify) {
  + get_account(current_notify_account);
  + if(previous_notify_account)
  + EOS_ASSERT(current_notify_account < *previous_notify_account, message_validate_exception,
  + "Message notify accounts out of order. Possibly a bug in the wallet?");
  + EOS_ASSERT(current_notify_account != msg.sender, message_validate_exception,
  + "Message sender is listed in accounts to notify. Possibly a bug in the wallet?");
  + EOS_ASSERT(current_notify_account != msg.recipient, message_validate_exception,
  + "Message recipient is listed in accounts to notify. Possibly a bug in the wallet?");
  + previous_notify_account = &current_notify_account;
  }
  }
  }
  