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?
Hmmm.  Actually, when I do that, it errors out because `Uint32` isn't a type that's been put into `StrPack`'s registry:

```
ERROR: key not found: Uint32
 in unpack at /Users/sabae/.julia/v0.3/StrPack/src/StrPack.jl:188
 in unpack at /Users/sabae/.julia/v0.3/MachO/src/MachO.jl:639
 in unpack at /Users/sabae/.julia/v0.3/MachO/src/MachO.jl:228
 in readloadcmd at /Users/sabae/.julia/v0.3/MachO/src/MachO.jl:520
 in collect at array.jl:233
 in get_dltree at /Users/sabae/.julia/v0.3/BinaryAnalysis/src/BinaryAnalysis.jl:41
 in get_dltree at /Users/sabae/.julia/v0.3/BinaryAnalysis/src/BinaryAnalysis.jl:28
 in include at /usr/local/Cellar/julia/HEAD/lib/julia/sys.dylib
 in include_from_node1 at loading.jl:128
 in process_options at /usr/local/Cellar/julia/HEAD/lib/julia/sys.dylib
 in _start at /usr/local/Cellar/julia/HEAD/lib/julia/sys.dylib (repeats 2 times)
while loading /Users/sabae/.julia/v0.3/BinaryAnalysis/test/runtests.jl, in expression starting on line 6
```