Various improvements to loading of Mach-o files

* Remove lc_str type, create custom unpack() methods to read in strings immediately

* Add dummy_lc() type so we can continue loading an object even if we don't understand a laod command

* Add rpath_command to get at the rpaths of binaries

* Remove LC_REQ_DYLD from load command ID's that still had them in
More consistently deal without LC_REQ_DYLD mixed in

Embed the actual LC_ command id into a LoadCmd.  This allows us to disambiguate things such as LC_ID_DYLIB and LC_LOAD_DYLIB
Address Keno's easy comments, and try out some fancy solutions for the harder ones

When reading in an `lc_str`, to hopefully appease both of us, detect when an offset is clearly invalid and refuse to read memory in that case. (I even tested it with a hex editor; fun times).  Always embed the offset as its own data member in the rare case that we actually do want it for something
Merge pull request #1 from staticfloat/sf/improvements

Various improvements