add disk backed mode via memory mapped files; this will allow us to optimize parts of the code for calling flush and asDouble() or asFloat() that will return references, get and put are relative to the current mode. A buffer will either return  the element via the file if its memory mapped or via the normal buffer if its already in memory. This will not affect current code for the most part as the default mode is in memory