Add ApproximateSize() method to Engine

Commit adds ApproximateSize() method on the Engine interface, designed to
utilize the GetApproximateSize() method of the rocksdb engine.

+ Implemented in both rocksdb and inMem Engine structs
+ Adds compression-aware test for the method.
what is it returning? the number of bytes available?

is there any chance that an error could be returned, here? if not we should just get rid of that.