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" : 0.0050000,
        "time" : 1384221652,
        "height" : 269117,
        "startingpriority" : 0.00000000,
        "currentpriority" : 313.90134529,
        "depends" : [
            "6fcad339f1a613594e9e9f877772a6c3896493ea7babf286a054421190761efa"
        ]
    },
```

EDITED: store/report timestamp when the transaction entered the pool.

Shed-painting on whether this should return an Array of Objects (with "txid" one of the keys) instead of an Object welcome, as are suggestions for key names (e.g. prefer 'startingpriority' or 'prioritystart').