significant update to gem

* Refactoring
* Added rspec test coverage
* Fixed variance calculations when extending
* All calculations done on Floats
* Enforce nil return for empty sets
* Support for Hashs, Sets, Ranges, Structs
* Updated documentation