Support libc++ <unordered_map>; use --seed instead of -seed.

All "long" command-line options (i.e., all options) now take two hyphens,
GNU-style, instead of one hyphen.

Re-add "-march=native" to the Makefile. It works now; I don't know what
was wrong before. However, Clang no longer supports -O99; use -O3 instead.

libc++ seems to have std::unordered_map in the <unordered_map> header,
even in C++03. (Full C++11-ization is a job for another day, and will
be complicated by the fact that Homebrew's wxWidgets version 2.9.4.0
is linked against Apple's pre-C++11 libstdc++, which means wxgui can't
be built with libc++, which means it can't be built with C++11.)
Add a .gitignore for .o files and executables.
Pragma-once-ify all .h files. No change in behavior.
Speed up GameState::toComparableString().

It was using std::vector AND new/delete?
That was a bit embarrassing. It's still not great,
and C++03 probably doesn't sort std::strings very fast,
but this is about a 5% speedup to ai_move overall.
doc fixes