Fixed datalog to handle dimensional data correctly

Multidimensional data means we expect an n-length array, rather than
an n-dimensional array.  Made some changes to reflect that.  Also,
corrected some calculations in update_filter.
Document, Correct empty padding for Datalog

Added some comments explaining some array manipulations.
Corrected the padding when retrieving data, and we don't have data
for the range requested (either we haven't collected it yet, or we
dropped it).  Currently we pad with zeros, instead of adding empty
arrays, since you can't append [None] to a numpy array of ints.
Will look into numpy.nan.