Feature map ordered

* Turned SOSI.Features.features into a map to fix #23
* Additional 'ordered' parameter in SOSI.Features.all
* breaks with the existing tests where they assume a fixed order in features. If necessary, the all(ordered=true) function can restore test compatibility at a 25% performance loss.