Voron - prevent adding a range of overflows which length is 0
Voron - prevent reading a page from the scratch that was already freed
RavenDB-2684 Voron - Introducing multiple scratch buffer files to handle fragmentation of free pages issue (Work In Progress!!)
RavenDB-2684 Making sure that read transactions can read from multiple scratch buffer files. Delete unused scratch files if we are sure that nobody looks at them.
Fixing calculation of _sizeOfUnflushedTransactionsInJournalFile (previously we didn't take into account the size taken by overflow pages)
RavenDB-2684 Missing ScratchNumber usage in equals, gethashcode and tostring methods
Fixing releasing scratch pages - release pages allocated by transaction headers
Temp commit
Fixing issue that only the first page from page translation table was freed in the scratch instead of all under a given page number
Refactoring - no need to have PageValue class, use PagePosition instead
Fixing invalid releasing of scratch pages by preventing freeing pages that had been already freed as unusedAndFree however they still resided in PTT because of overwrites by newer transactions (so they could not be removed from there)
Defensive coding - just to be sure we will never try to release free a marker page
RavenDB-2684 Added option to force to flush even old pages that have overwrites to allow to free them from scratch. This is needed to handle the scenario where we add continually growing value under the same key.
Merge branch 'master' of git://github.com/ayende/ravendb into RavenDB-2684

Conflicts:
	Raven.Voron/Voron/Impl/Transaction.cs