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.
```
if (!allTransactionsLoaded && filteredHistory.length < transactionsNeeded) {
  return loadNextPage().then(function() {
    return getPage(pageNumber, filter);
  });
} else {
```

This is a utility function to make ```getPage()``` more readable. ```getPage()``` checks ```allTransactionsLoaded``` before calling ```loadNextPage()```. I would move the check out of ```getPage()``` and into ```loadNextPage()```, but ```getPage()``` needs to branch on it.