allow writing/reading ROQ weights to/from npz
This MR adds the option to save ROQ weights using
numpy.savez. This format is (compared with
- less memory intensive to read/write
- faster to read/write
- more compact on disk
- not human readable
- more difficult to read outside of python?
We're finding that saving the weights for the larger bases takes a _lot of memory and a decent amount of time. This format will make BNS runs more stable.