(Support) Update to latest Sawyer

In particular, we're now using Sawyer's Stopwatch class instead of
the one that was in ROSE. Sawyer's version has an API that is almost
identical but adds additional things like operator<<. It also works
with recent versions of boost (>=1.47 using boost::chrono) and falls
back to POSIX and Windows APIs for older versions.
(Support) Switched Stopwatch to Sawyer::Stopwatch in places that use it
(Binary Analysis) Added virtual SgAsmInstruction::get_anyKind()

Returns the p_kind data member of any subclass cast to unsigned.
This enables us to write future-proof code instead of using
"switch" statements.
(Analysis) Added tree edit distance to librose

This is based on the version in projects/EditDistanceMetric with
the following changes:

* Added documentation.

* Added API functions to return useful results rather than just
  printing them to stdout.

* Added API functions to recompute edit distance without needing
  to re-traverse the AST.  This is useful when comparing one
  tree with lots of others.

* Added message streams so debugging can be turned on/off.

* Split generation of GraphViz files from the core algorithm.

* Redesigned the auxiliary tables to avoid O(log n) lookups. It
  turned out that none of these tables were necessary when things
  were rearranged a bit.

* Insert/delete/substitute costs can be set to any non-negative
  values instead of hard-coded at 1.0.

* Substitution can be limited according to a user-supplied predicate,
  which allows edit distance to take other factors into account
  rather than just the shape of the tree.

* New version is 1/3 smaller in terms of lines of code, and the
  core algorithm, compute(), easily fits on one screen (38 lines
  inc. comments).

* Neither version is able to compute edit distance for arbitrary
  trees -- both trees must have similar root nodes.  The best
  algorithm I could find for general tree edit distance is O(n^3).
  The more specific case we implemented is O(V_1 V_2 log(V_1 V_2) E)
  where V_1 and V_2 are the number of nodes in the two trees and
  E is the number of legal insertions, deletions, and substitutions.

* Improved performance.  Edit distance was computed over two
  ~3000 node trees resulting in a graph with 10 million vertices
  and 13 million edges. Elapsed time was 3.8 seconds; the original
  implementation took 58 seconds.
(Binary Analysis) Moved SageBuilderAsm into rose namespace; new functions
(Binary Analysis) Various little things
(Edit Distance) Makefiles should not delete things they don't create

"make clean" was deleting my temporary binary specimens from this
directory requiring me to copy them back in each time.
(SageInterface) getProject should return null rather than fail assertion

If frontend has not been called yet and no SgProject exists, then getProject
should return null rather than failing an assertion.

Added more documentation.
(Edit Distance) Cleaned up compiler warnings in projects/EditDistanceMetric

Also added calls to the version of TreeEditDistance that's in librose.
(Edit Distance) Added demo for binary edit distance

A separate program is needed because the purpose of frontend(), at
least for binaries, is to parse a coherent collection of specimens
whose parts create a whole process. Therefore we need to call
the equivalent of frontend() twice in order to parse two unrelated
specimens and create two processes that can be compared.
(Binary Analysis) Make sure progress bar shows for more than one partitioner
(Support) Function to obtain generic command-line switch description

CommandlineProcessing::genericSwitches returns a description of the
switches that are applicable to all ROSE tools.
(Binary Analysis) Tools all share code for generic command-line switches
(Analysis) Unified APIs for edit distance metrics

* TreeEditDistance and LinearEditDistance have APIs that are
  similar to many of the binary analyses: they live in their
  own namespace and have an Analysis class to hold settings
  and results.

* The generic Levenshtein and Damerau-Levenshtein function
  templates were moved into the rose::EditDistance namespace.
(Analysis) Updated tools to use new names for edit distance metrics
(Support) Updated to latest Sawyer

* Fixes compile error in Sawyer/Markup.h when some other package's
  header #define's the symbol "emit" which conflicts with any
  C++ source code that uses "emit" as a symbol.
Merge remote branch 'rc/master' into m68k
(Binary Analysis) Function similarities my Munkres algo

Committing source code, but the tool is not part of the makefile
and not compiled because it currently depends on a GPL library.
(Support) New version string for "--version" switch

Needed because version_message() is at a higher layer in rose
that might not be available to everyone using CommandlineProcessing.
(Tutorial) Added missing "rose" namespace