RFC: ByteOrder types for io

This adds `ByteOrder` types and read/write methods to make it easier to deal with different byte orderings.

The key advantage is arrays: previously I found myself using code such as:
```julia
x = read(f,Float64,100)
map!(ntoh,x)
```
Now it is possible to use
```julia
x = read(f,Float64,NetworkByteOrder,100)
```
It still needs some tests, documentation and exports, and I would also like any feedback on the interface.