Provide Engine.ndarrays() and Engine.masked_arrays().

Closes #61.
Thread-per-node evaluation
Remove obsolete engines
Docstrings and minor refactor
More comments and minor refactor
Switch to true-division
Remove obsolete abstract methods
Promote array/axis to AggregationStreamsHandler
Correct axis limitation notes
Another docstring
Fix negative axis handling and comment typo
Better error handling
Fix axis normalisation
Merge pull request #63 from rhattersley/save-node

Thread-per-node stream processing.