leveldb: Logging journal and table removal
storage: Introduce File.Replace method
storage: Introduce temp file type
interator: Introduce error callback
leveldb: table: Improve tWriter
leveldb: Fix Recover() recovering invalid sequence number

In order to extract latest sequence number from table, all
tables should be scanned, not just the newest one.

Now Recover() also rebuild corrupted table.

Issue #53.
leveldb: version.get: Scan all tables overlapped tables in L0 for key

This is required since newer table doesn't always conatains latest entry.