fix error handling
Squashed 'Raven.Voron/' changes from 8e6f442..bb44319

bb44319 Fixing an issue where we would read out of band data
cb76a37 Reducing the use count of LinkedDictionary, should only use it for page tables
42e91bb Reducing the need for transaction dictionary, now only need it for page tables
41994e3 Show failing test
2ef4b3d Fixing another issue with ImmutableAppendOnlyList
9d3495f Adding fixes
411508d Moving to new ImmutableAppendOnlyList
cf0aa75 Allow to have more than a single scratch pager
dde9ef4 Making sure that we are only releasing the journaling task when we are actually completing the IO
70e9f0e Fixing build
230999d Removing debug code
ae9770b Early lock release for write batches.
408574d properly dispose of the events
9c74866 Better random generator
4d60b99 Minor
281ac33 Minor
2ec76ff Order the writes before actually submitting them.
18474f3 Optimizations - don't check the dictionary twice.
1d9434e Keep recently found pages in a transaction (16 pages per tree at most) instead of only the last single page in a tree
9897571 Merge branch 'voron' of github.com:ayende/raven.voron into voron
8f661a1 If page split or tree rebalancing occurs then invalidate the last found page for all running threads
4734d60 Merge branch 'voron' of https://github.com/ayende/raven.voron into voron
b43cf9b Better error handling Better disposal handling
14dff31 Last found page in tree should be per thread to avoid changing it by another read thread
086d376 Do true parallel writes - read from the same source and don't divide the data
13440e1 Merge branch 'voron' of https://github.com/ayende/raven.voron into voron
bf7678c Better concurrency behavior
cc19a86 Fixing a bunch of issues related to the move to background write thread
e4fa84d Moving to a single background writer thread when using the write batch method. The idea is to reduce the number of contentions that we have to deal with when we have concurrent writes.
245e0d5 Removing some old debugging stuff
370ae14 Fixing build
fbbf20e Include big values
85e0251 We don't need the manifest any longer
d565c48 Moving to a better method of handling the actual update
6d332fe Provider a lazy implementation that allow deferral of mutations
852fa39 Make sure that we use the current page instance if we already have it
b66c331 Instead of storing a lot of lazy pages, just make the cursor itself lazily created
afd2a9f Merge branch 'RavenDB-1500' of github.com:ayende/raven.voron into voron
e7f6740 Minor
2d04300 Use MDB_APPEND on sequential writes
6e4b308 Fix API usage
0078855 Merge branch 'voron' of github.com:ayende/raven.voron into RavenDB-1500
44a87fb RavenDB-1500 When you reuse a page then add to the cursor lazy pages - they will be used only if the page splitter needs them
4f5b624 RavenDB-1500 Page finding optimization - try to reuse last found page
f5be4b6 Don't require more permissions than you need
a42796e Don't abort on cancelled task
4d3a9af Merge branch 'voron' of https://github.com/ayende/raven.voron into voron
00494ee Moving to a single buffer temporary page, exposed to both managed & unmanaged code Avoid using UnmanagedMemoryStreamd.CopyTo

git-subtree-dir: Raven.Voron
git-subtree-split: bb443197147deec9e8cdbdbc1ec936fb9fc491b2
Merge commit '11c2592a765090c61f3b0761047676f17ec60ea6' into New3

Conflicts:
	Raven.Voron/Performance.Comparison/Other/LMDB/lmdb_perf_test.cpp
	Raven.Voron/Performance.Comparison/Performance.Comparison/Constants.cs
	Raven.Voron/Performance.Comparison/Performance.Comparison/ParallelTestData.cs
	Raven.Voron/Performance.Comparison/Performance.Comparison/Performance.Comparison.csproj
	Raven.Voron/Performance.Comparison/Performance.Comparison/Program.cs
	Raven.Voron/Performance.Comparison/Performance.Comparison/StoragePerformanceTestBase.cs
	Raven.Voron/Performance.Comparison/Performance.Comparison/Voron/VoronTest.cs
	Raven.Voron/Voron.Tests/Bugs/PageSplitter.cs
	Raven.Voron/Voron.Tests/Storage/Batches.cs
	Raven.Voron/Voron.Tests/Storage/BigValue.cs
	Raven.Voron/Voron.Tests/Storage/Concurrency.cs
	Raven.Voron/Voron.Tests/StorageTest.cs
	Raven.Voron/Voron.Tests/Voron.Tests.csproj
	Raven.Voron/Voron.Tryout/Program.cs
	Raven.Voron/Voron.Tryout/Voron.Tryout.csproj
	Raven.Voron/Voron/Debugging/DebugStuff.cs
	Raven.Voron/Voron/Impl/Backup/FullBackup.cs
	Raven.Voron/Voron/Impl/Backup/IncrementalBackup.cs
	Raven.Voron/Voron/Impl/Journal/JournalFile.cs
	Raven.Voron/Voron/Impl/Journal/JournalReader.cs
	Raven.Voron/Voron/Impl/Journal/JournalSnapshot.cs
	Raven.Voron/Voron/Impl/Journal/Win32JournalWriter.cs
	Raven.Voron/Voron/Impl/Journal/WriteAheadJournal.cs
	Raven.Voron/Voron/Impl/Paging/AbstractPager.cs
	Raven.Voron/Voron/Impl/Paging/FragmentedPureMemoryPager.cs
	Raven.Voron/Voron/Impl/Paging/IVirtualPager.cs
	Raven.Voron/Voron/Impl/Paging/MemoryMappedPager.cs
	Raven.Voron/Voron/Impl/Paging/PureMemoryPager.cs
	Raven.Voron/Voron/Impl/SliceEqualityComparer.cs
	Raven.Voron/Voron/Impl/StorageEnvironmentState.cs
	Raven.Voron/Voron/Impl/Transaction.cs
	Raven.Voron/Voron/Impl/TransactionMergingWriter.cs
	Raven.Voron/Voron/Impl/WriteBatch.cs
	Raven.Voron/Voron/StorageEnvironment.cs
	Raven.Voron/Voron/StorageEnvironmentOptions.cs
	Raven.Voron/Voron/Trees/Cursor.cs
	Raven.Voron/Voron/Trees/Page.cs
	Raven.Voron/Voron/Trees/PageFlags.cs
	Raven.Voron/Voron/Trees/PageSplitter.cs
	Raven.Voron/Voron/Trees/Tree.cs
	Raven.Voron/Voron/Trees/TreeIterator.cs
	Raven.Voron/Voron/Trees/TreeRebalancer.cs
	Raven.Voron/Voron/Util/NativeFileMethods.cs
	Raven.Voron/Voron/Voron.csproj
Merge branch 'New3' of github.com:DanielDar/ravendb into New3

Conflicts:
	Raven.Voron/Performance.Comparison/Performance.Comparison/app.manifest
	Raven.Voron/Voron.Tryout/app.manifest
	Raven.Voron/Voron/Impl/Journal/PureMemoryJournalWriter.cs
	Raven.Voron/Voron/Impl/ScratchBufferPool.cs
	Raven.Voron/Voron/Util/SafeList.cs
ensure json content type is set and char set