Prevent Orphans

- Refactored OutOfSyncByAge function
- Added enhancement to stake miner to detect when client is mining a
stale block and restarts with a fresh block (The idea here is to prevent
reorganizations)
- Added feature to remove all orphans from the wallet transaction list
if they are over 4 hours old (so we can still see them forming)