* Refactor to use Feature* struct for feature extraction. API changes.
* Update tests
* Don't hash single-length features
* Ignore 0-valued features
* Add overflow checks to weights
* Change typedef for transition callback, to include error
* Fix variable length transition histories, and bug fix to max violation update
* Whitespace
* Switch back to float arithmetic
* Update search tests
* Fix iteration through preshed.maps
* Rollback previous changes, which were based on a misunderstanding of how the dense array works in preshed.
* Refactor weights, cleaning up unused cruft
* Fix variable-length paths in search
* Refactor weights, standardising on the perceptron update
* Fix compile error