Reverted back to ValueRange as it is much easier to deal with close intervals for the time being.  Made the interface take a generic type, but the default implementation still uses longs
Made rangestore data type agnostic.  Added a lot more unit tests.  Added License headers.