basic byte and numeric sort

includes tests for numeric sort

this implements #219 
This needs to be:
```rust
fn open<'a>(path: &str) -> Option<(Box<Reader + 'a>, bool)> {
    // function body
}
```