RPCClient should use something smarter than getrawmempool
getblocktemplate would be nice, though that might be too slow? getrawmempool and doing our own sorting really sucks, though.
I switched this to getblocktemplate since getrawmempool was just returning a random subset of the spam transactions instead of the subset which was selected for block inclusion (I hope this works better). Still, this sucks because we miss the thousand transactions which just barely don't make it into each block, which could kill us in the case of two back to back blocks.
The real issue is that current mempools are something like 1/2-block-worth-of-real-txn, 5-blocks-worth-of-spam-txn, where the spam txn all have identical feePerKb, so its actually impossible to pick good transactions for pre-relay (Bitcoin Core needs to sort by fee-then-hash instead of fee).