initial lease work
add recovery hooks
Added check in PhatRPC for recovery state, added handles + API calls,
working on client-side caching and keep alives
Added stub for keepalive in phatRPC, moved client test to tests folder
Reverted to no handles
Starting basic fuzz testing. Implemented stop replica and kill replica
added logic for recovery - no testing yet
PrepareRecovery
return error after preparerecovery
refactor sendAndRecv yet again + fix a bug in recovery
Fuzz testing: fixing Markdown format

+ Underscore means make italic
+ All HTML characters need to be escaped
PhatDB: Remove excess logging and fix minor SetData inconsistency

SetData returns the data that was just set -- totally unnecessary
Refactor PhatRPC + PhatClient -- cache not needed for next release

As the cache system wasn't working yet and won't be needed for some
time, I pulled the code out. We can pull it back in once we're confident
of the base system.

PhatClient tests were moved back into the same directory.
By default, tests live with the code they're testing in Go.
Added fuzz_testing support for >3 nodes and putting data
make default 5 replicas + fix bugs in view changes (view change state wasn't reset after successful recovery, can't timeout on a view change itsef)
fix some bugs in VR recovery. replica 0 still can't recover but, for instance some other replica (say replica 1) CAN recover even after it has been the master (it will no longer be the master though, of course). essentially, recovery should work for anything except replica 0
make NREPLICAS 2F+1 instead of 2F. I think this is ultimately more clear
partial refactor
more cleanup
Merge branch 'master' of github.com:mgentili/goPhat