Slight refactoring to prepare for chunking

Large functions (defined as those that do significant work with
matrices but do not participate in I/O) have been moved to
imad_bigfun.cpp and the corresponding namespace in preparation
for chunking.
Array reading has moved to its own function

Paradoxically, it's also made this faster somehow?
Minor commit with interface redesign
Preliminary working version of chunking

Runs chunking without segfaulting. Output matches version without
chunking. Yippeekayay motherf***er.
Finished chunking and code finalization

Chunking is done and produces the same result as the native code.
Cleaned up a lot of functions and added some documentation.

Need to rewrite the output functions and the README, and we'll
be ready to start turning this into an R-capable package.