RavenDB-1503 Recently found pages are kept in a binary tree structure instead of list
RavenDB-1503 Read transaction keep recent pages internally, while write transactions use pages tracked by a tree
Merge branch 'voron' of github.com:ayende/raven.voron into RavenDB-1503
Changing the implementation of Add and Delete methods of RecentlyFoundPages class to not use recorsion
Use skip list instead of unbalanced binary tree
Moving recently found pages by write transactions to tree state
We need to compare the entire pages - especially page number when we add new
Moving to new ImmutableAppendOnlyList
Adding fixes
Fixing another issue with ImmutableAppendOnlyList
Show failing test
Reducing the need for transaction dictionary, now only need it for page tables
Reducing the use count of LinkedDictionary, should only use it for page tables
Fixing an issue where we would read out of band data

Removing LinkedDictionary - no longer used
Fixing issue in list
Making sure we aren't exposing corrupted data out.
Merge branch 'RavenDB-1503' of https://github.com/ayende/raven.voron into voron

Conflicts:
	Voron/Voron.csproj
Better lru impl
Move invalidation of found pages to the page splitter.
Instead of invalidating everything, only invalidate all the siblings of the page about to be split.
Moving the tree balancer clearing to be inside the tree rebalancer