(#635) - compact deleted document (test)

Added test so we make sure that also deleted document get compacted
(#635) - compact deleted document as well

Now deleted document are also compacted.
(#635) - low level method document availability support

parseDoc and merge have to support new availability option
(#635) - api.get support availability in rev tree
(#635) - make comapction use status from rev_tree

Start with idb adapter
(#635) - refactor websql and leveldb adapters
(#635) - move more logic to generic adapter (auto_compaction)

In order auto_compaction to work I moved modification of the whole
rev_tree into compactDocument in generic adapter. It then sends
revisions which we want to delete and modified rev_tree to adapter
specific method which does the compaction process.
(#635) - merge_rev_tree tests now support availability

That's quite to much said as they don't check if the availability
is merged correctly.
(#635) - make merging status less explicit

If we merge statuses {} and {} we now get {} and not {status: missing}