Implement prototype convergent computations.

Provide the ability to specify a type on delcaration.  If the type is
undefined, then assume a single-assignment term.  If the type is one of
the supported riak_dt types, bind immediately to the bottom value and
allow the variable to be re-bound, while rebinding all dependent values,
if it monotonically increases in value.

Resolve a series of circular dependencies, which trigger deadlocks when
vnodes need to coordinate actions against themselves.

Finish implementation of replication across preference lists of vnodes.

Implement a correct and working version of handoff.

Finally, resolve bugs where single-assignment variables were not
considered final.