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?
I agree in principle, but in this case, all you're encoding in an `lc_str` is a way to get at the string data.  There's nothing else that can be done with the offset, so rather than force users to jump through an extra hoop, why not just get the string data immediately?