A test and an ugly fix for multiple create bug

Currently if the database is being open by two processes at exactly the
same time, the Reader can end up in a situation where both processes try
to create the memory map. Initially this failed due to the file stream
opening the file without allowing file sharing. However, fixing that
issue leads to a situation where one process successfully creates the
memory map and the other throws an exception due to trying to create a
map that is already open. As such, I catch this exception and open the
existing memory map.

This seems to work, but there must be a much better way.
Use a Mutex on mmap open/create
Switch back to other mmap static factory method

In order to get it working under Mono.
Exclude many opens test under Mono
Fix NUnit Runner exclude statement
Changed mutex -> monitor
Made _mmapLocker readonly