Simplify

This branch isn't ready to merge yet, I'm going to use this pull request to keep track of what I'm doing in this branch and for feedback.

This branch will combine several things:
* Mainly, will strip out the UseDistributional==0 case and replace that by a new option to create masks which are all 1s
* Will unify the OpenMP and non-OpenMP versions into a single branch
* Will include the use_less_ram options, and to do this I'll have wrapper functions/macros around all data access to avoid the current situation where there are loads of ifdefs everywhere.
* Will fix the RAM limit problems and have a single report of min/max ram usage and an estimate of total physical memory (not available memory)

So far I've merged the use_less_ram branch and unmaskedcov into this branch, and stripped out most of the UseDistributional==0 code. I left io.cpp as a reminder of what needs to be done there. At the moment, it won't work for non-distributional data but that's just a case of either setting the masks to 1 or including this in the wrapper functions/macros for accessing mask data (there would be a wrapper that returns 1 everywhere).

For efficiency, it might be better to make UseDistributional a compile-time setting rather than a runtime setting. Any opinions on that?