#161 prototype
A bit of cleanup for #161
Fix corner case for #161
Refactor for #161 - added count, sum, mean, var, stdev
More changes for #161

Added new module Stats, moved moving and now expanding window
functions there, wrote tests.
Added missing Stats.fs for #161
#161 added back count & sum to expanding window fn
Add sample skewness, kurtosis and tests
Small cleanup
Clean up a bit, keep whole index in projection
A bit of simplification b/c we're only dealing with floats
Added Deque dependency for O(n) moving min/max; added moving & expanding min/max
Added Stats.fs to tests
Clean up naming a tiny bit, remove extraneous conversion to option
Tiny cleanup to expandingMinMaxHelper
Obsessively cleaning up expandingMinMaxHelper. Done now.
Review and document the Stats module.

I have not done any major changes in the implementation, so this checkin
mainly just adds documentation to the functions etc. (I will add separate
documentation page in an upcoming commit).

The notable changes are:

 * I removed `Array.copy` from `movingWindowFn`. This function is internal
   and none of our uses mutates the array, so this is safe (it speeds things
   up only a little though). I also made some functions `inline`, but this
   also does not add that much.

 * In `initSumsSparse`, I replaces `Seq.filter` and `Seq.map` with single
   `Array.choose`. This actually makes things a bit faster

 * When calculating expanding variance and standard deviation, I changed
   the code to return `nan` when there are less than 2 elements (before, this
   returned 0 for no elements and `nan` for 1 elements, which, I think,
   does not make sense).

 * I added "normal" versions of all the functions so that you can use e.g.
   `Stat.mean` to get mean of a series. I think we should move all statistics
   into the `Stat` module (for consistency and to cleanup the namespaces).