Refactor RPC to core function and add issuances, grants, revokes

This PR is focused on streamlining the RPC code and adding manual issuance/grant/revoke support.  
It primarily serves the following purposes:

* Remove multiple sets of duplicated & differing code across RPC transaction functions
* Refactor transactions into one single function (populateRPCTransactionObject) to achieve:
  - Introduce concept of a singular standardized 'transaction object' in the RPC layer
  - Singular codebase to modify/add transaction types to RPC layer
  - Standardize the output of gettransaction_MP, listtransactions_MP and any future calls that show transactions
* Add support for manual issuance, grant and revoke transaction types
* Remove redundant searchtransactions_MP function 
* Reapply address filtering to listtransactions_MP now using levelDB
* Patch unexpected subaction bytes as subaction 0 (to handle v0 packets)

Thanks
Z