Changed update() and overwirte() to return updated snapshot.
Changed namespace mvcc_util to mvcc_detail
Changed mvcc::shared_ptr to mvcc::snapshot_ptr
Added try_update_until_impl to take updater by ref to save a copy
Moved detail stuffs to its own header
Updated copyright
Changed try_update_once()'s return type to snapshot_ptr.
Added tests
Added detail file