WIP transactional DB
WIP on transactional kv.DB.
Unittests under development.
Transactional client for node-internal use.

This is essentially the first implementation of a cockroach client, though
it's for node-internal use only. It'll be used for range splitting first,
and then eventually for message queues, structured data index maintenance,
etc.

This client uses the kv.KV abstraction to proxy all commands to a wrapped
distKV or localKV instance. In the process, the request's Header values are
populated to update the commit timestamp and current transaction. Responses
are examined to get newest values for commit timestamp and to handle various
error conditions which require transaction restart or abort & retry.

Added explicit UserPriority to proto.RequestHeader. This allows non-txn
commands to specify a user priority. It was necessary to fix a non-
deterministic unittest failure but also was something I intended to add
eventually anyway.
Reverted a change which removed the RunTransaction method from the
storage.DB interface. Unfortunately, that was a mistake.
Respond to Jiang-Ming's and Tobias' comments.
Merge pull request #75 from cockroachdb/spencerkimball/txn-db-impl

Transactional client for node-internal use