Fallback to memory if mmap is not available

The mmap module is not available on AppEngine. These changes allow the Reader to fallback to keeping the entire database in memory instead of using mmap.