HBASE-7212 Globally Barriered Procedure Mechanism

Removing Barrier proto - Procudure.
Fixed race condition in TestZKProcedure
Updates to procedure to take advantage of better method names.
Tighten up ProcedureMember's use of ExternalException
Update Procedure to not use ExternalExceptionMessage and to use updated ExternalException

Renamed ProcedureBuilder to ProcedureFactory Fixed spacing nits in Procedure code.
Cleanup for procedurebuilder->factory change.

[proc] remove releaseBarrier from Subprocedure.
Fix spacing nits
Repackage procedure to o.a.h.h.procedure.
Remove latches and cleanup method only used by testing from Procedure
Fixed TestProcedure positive cases so that they are not flakey
Renamed barrier* call back to barrier*ByMember
Cleaning up Procedure:
 Rename duringBarrierLatch -> acquiredBarrierLatch
 Simplify error handling.
Renamed Procedure getErrorCheckable to getErrorMonitor.
Remove wrap method from Procedure
Got rid of Procedure.getCompletedLatch
Removed silly helper methods with receiveError calls
Renamed sendSatisfiedBarrier -> sendReachedBarrier
Removed some methods that exposed latches and created new higher level methods.

Added isRemote to ExternalException.
Procedure is now clean.
[err] Procedure is now clean
tightened ProcedureCoordinator
Comment fix in ExternalException to remove a circular doc dependency on Procedure
ProcedureCoordinatorComms now clean.
Got rid of silly threads counting methods in ProcedureMember
Made ProcedureMember.getComms() package viz.
Cleanup ProcedureMember
- reorganized file for better readability.
- merged runSubprocedure into submitSubprocedure
Moved ExternalException serialization into ZKProcedureMemberComms
Trying to decide if I should cull this controllerConnection failure code.  (I think the answer is, if in doubt, remove).
Git rid of error helpers.
Remove Procedure import from ExternalExceptionDispatcher.
Going to tackel subprocedure local exception
Cleaned up TestProcedureMemeber and Subprocedure.cancel.
Make Subprocedure abstract
Cleaned up ProcedureMemberComms and Subprocedure
Cleaned up ZKProcedureUtil.
Cleanup of the ZK parts of procedure
Fix some nits in tests.
used import static for mockito in TestProcedure
Added TODO about unused ZKProcedureCoordintorComms#sendAbortToMemebers
Cleaned up TestProcedureMemeber.

hbase-7212 updates from ted's review.
After ted review, procedure clean.
Stack + Ted's review updates of Procedure
Added Comms->Rpcs RPC files.
I'm prove variable name for procedureDescription -> procedureType in ZKProcedureCoordinatorComms
Remove nodeName/coordName from ProcedureCoordinator.
handling controllerConnectionFailure wonkyness
Cleaned up nomenclature in ProcedureCoordinatorRpcs and ProcedureFactory
More nomenclature cleanup in procedure coordintator
cleanup procedure member
cleaned up nomencalture of subprocedure
Rename ZKProcedureCoordinatorComms -> Rpc fixed naming in zkprocedurecoordinatorrpcs
Fixed naming in ZKProcedureMemberRpcs
add files for zk rpcs rename
Fix spacing nits.

Updated procedure to use WeakValueMapping
Used WeakValueMapping in ProcedureMember
Added tests for Weak value mapping.
HBASE-6866 Timestamp snapshots [regionserver side]

Timestamp Snapshot on the region
  RegionServer side manager and plumbing
  SS Desc utils nits.
  Flush region ts snapshot regionserver side.
  Online SnapshotSubprocedure
  Fixes for making rs side compile

[rs] Remove releaseBarrier subproc no-op
[rs] repackage procedure
[rs] rename externalErrorMonitor -> monitor
[ts] renamed externalErrorMonitor -> monitor

[rs] procedure is now clean.
[rs] nit fix for online exception handling.
[rs] change from localOperationException -> cancel.
[rs] changed constructor args of Subprocedure

[rs] fix spacing nits.
[rs] Comms->Rpcs
[rs] clean up procedure member
[rs] Fixed naming.
HBASE-6866 Timestamp Snapshots [master side]

Master side online table snapshot plumbing
  Wire in and test online snapshots
  Wire in Enabled TableSnapshots
  Remove TestSnapshotFromServer -- requires injection framework
  Re add procedure stuff to SnapshotManager
  FS protos

Remove cancel from EnabledTableSnapshotHandler

[master] Repackage Procedure
[online] renamed Procedure getErrorCheckable -> getErrorMonitor

[hm] rename Comms -> RPC
[hm] remove node name from ProcedureCoordinator
[hm] comms -> rpc