In general, assume that parsing MachO command may fail: make a large
family of methods return std::error_code instead of returning MachO
commands by value.
This is a significant API change. For now I've just converted MachO
parser implementation, and will proceed with converting the callers if
this direction is approved.
This change is a part of ongoing effort to use LibFuzzer to test LLVM
object parsing/dumping machinery, see r238451 that adds
llvm-dwarfdump-fuzzer, for instance.