Clean up the build and allow building on OS X

- Added more generated files to .gitignore.
- Makefile uses an implicit rule for C++ objects, which refers to the variable CXX instead of CC. Use CXX in the Makefile.
- find on Mac OS X always requires a path. Update the Makefile.
- htobeXX and beXXtoh are not portable to OS X. Add some macros to work around this.
- TagCompound::getString returns temporary strings by reference. Return by value instead. I think it might be better to have TagString::getValue return by reference, then it's easier to have TagCompound::getString return by reference as well. Not sure what the intent is.
- A loop in util.cc used int for the type of the index, but the index is consistently used with std::string::size_type, which is usually size_t.