Add open() from wc.rs

This function solves the problem of abstracting over the Reader trait
with a heap value. This solution in itself rather unfortunate, but I
couldn't think of another way to have a single return value for stdin
stream and normal files.
Add initial cut_bytes() implementation
Use stdin when no files are specified
Do not combine adjacent ranges
Improve performance of cut_bytes()

Still an order of magnitude slower than GNU cut.
Add cut_characters implementation, based on cut_bytes

This implementation uses rust's concept of characters and fails if the
input isn't valid utf-8. GNU cut implements '--characters' as an alias
for '--bytes' and thus has different semantics, for this option, from
this implemtation.
Do not double buffer by using stdin_raw() instead of stdin()

By casting `box stdin() as Box<Reader>` stdin's buffering Reader
implementation is cast as the Reader Trait and then it is wrapped in a
BufferedReader(). This means two buffering layers. stdin_raw() Reader
implementation does not use a buffer, so when stdin_raw is wrapped in
BufferedReader() the new object has just a single buffer.