Add verbose flag to getrawmempool

This is the first half of the smart fee rework.

Three commits; the first two are clean-up refactors.
The third adds an optional boolean 'verbose' flag to getrawmempool, and reworks the memory pool to store CTxMemPoolEntrys instead of CTransactions.

Output of 'getrawmempool true' is an Object, with transaction id keys:
```
    "f5f67700586e435a8634f6235783936cb015a11115f2d379fb987e34d21d58bd" : {
        "size" : 223,
        "fee" : 50000,
        "height" : 269117,
        "startingpriority" : 0.00000000,
        "currentpriority" : 313.90134529,
        "dependson" : [
            "6fcad339f1a613594e9e9f877772a6c3896493ea7babf286a054421190761efa"
        ]
    },
```

height is the best-block-height when the transaction entered our pool; it probably makes sense to store (and report) the local time when the transaction entered the pool, too...