allow Get() calls to avoid copies into std::string

Add a new abstract base class leveldb::Value that applications can easily
derive from to supply their own memory management for values retrieved via
Get(). Add an internal class derived from Value that provides std::string
management to preserve backward compatibility. Overload DBImpl::Get() to
accept a Value*, and to preserve backward compatibility also keep the
original version taking a std::string*.
Merge pull request #72 from basho/sbv-db-value-holder

allow Get() calls to avoid copies into std::string
Major adjustments to how levels interact.  Not yet tuned.
Update static compaction parameters to prevent early compactions of levels 1 and 2
Add comments to leveldb parameters
Address Engels code review items.  No functional changes.
Merge pull request #73 from basho/mv-level-work1

Mv level work1
experiment with using tiered locks on write side to fix performance
Merge branch 'master' into mv-write-buffers