Transaction history refactor

Refactors the transaction history into two services:
 - TransactionHistory
   - Maintains a raw history of transactions from stellard
   - Handles the core pagination processing
   - Returns a page of transactions matching a given filter
   - Sets up listeners that fire when new transactions occur matching a given filter
 - PaymentHistory
   - Provides pages of payment transaction processed with the JsonRewriter
   - Broadcasts an event when new payment transactions occur
   - Fetches contacts for accounts involved in payment transactions

This lays the ground work for adding the TradeHistory service that will filter and process trades out of the meta data in the transaction history.

Ground work for #984.
this function also sets alltransactionsloaded, asynchronously, which means that multiple calls to getPage() might back up since allTransactionsLoaded won't get set to true until it returns from StellarNetwork.request. so actually it should be checked in the next promise