Various improvements

With these changes merged, we can do fun stuff [like this](https://github.com/staticfloat/BinaryAnalysis.jl/blob/master/test/runtests.jl) (Where all the actual work happens [here](https://github.com/staticfloat/BinaryAnalysis.jl/blob/master/src/BinaryAnalysis.jl)).

I assume you'd eventually like to make ObjFileBase flexible enough that I can abstract out the mach-specific stuff and do this to ELF files as well?
When I call `bytestring` on line `223`, the argument is an `IOStream`, not an `IOBuffer`, and `bytestring(::IOStream)` doesn't seem to exist, so I wrote one.