Fixes RDT bug with Sparse Values and preps for test

 - RDT doesn't like sparse values, they aren't handled the same way as a
   coverage handles them so now there is a spanify wrapper which manages
the span objects inside the storage.
 - Certain parameter contexts are failing at creation time due to numpy
   not being JSON compliant, added a walker to convert them
 - Adds test to verify sparse capabilities and edge case prevention

If the dataset doesn't grow but sparse values are attempted twice an
error is raised (pigeon holed), the solution is for ingestion to ignore
subsequent values.  There's only room for one value so just use the
first one.
Merge pull request #974 from lukecampbell/rdt

Fixes RDT bug with Sparse Values and preps for test