Add new memo restrictions

This tightens up the rules for memos. The "Memos" array can only consist of "Memo" objects. Memo objects can only contain "MemoData", "MemoFormat", and "MemoType" fields.

The distinction between the "type" and the "format" is that the "type" identifies a specific protocol for the netire memo data meaning. The "format" indicates whether it is JSON, text, X.609, MessagePack, raw binary, ripple serialization, or whatever. This permits a client that understands the format to provide some information about the memo even if it doesn't understand the entire protocol.