(Binary Analysis) Methods to initialize RegisterStateGeneric

* Able to initialize all register mentioned in a RegisterDictionary.
  For x86, due to the large number of overlapping registers, this is
  more efficient than traversing the dictionary and calling
  writeRegister() for each one.
(Support) Added RangeMap::distinct(Range); C'tor is explicit
(Binary Analysis) Changed the way semantic things are formatted

* Changes the API for formatted printing of semantic things.
  More details below.

* RegisterStateX86 no longer uses hard-coded register names,
  but rather gets them from a dictionary. Thus, "ax" is now
  properly called "eax", etc.

* RegisterStateGeneric has a format option to not print
  register/value pairs if the value looks like its the initial
  value for that register.  If the value's comment string is
  equal to the register name appended with "_0" then we assume
  its the initial value for the register.  This is disabled
  by default (see Formatter::get_suppress_initial_values()).

More info about formatted printing...

Printing values with formatting was a pain before because you had to
mix "<<" with "print" like this (for for a, b, c instances of SValue,
RegisterState, MemoryState, State, RiscOperators, or any subclass):

     std::out <<"a=";
     a->print(std::out, format);
     std::out <<", b=";
     b->print(std::out, format);
     std::out <<", c=";
     c->print(std::out, format);
     std::out <<"\n";

The new way does it like this:

     std::out <<"a=" <<(*a+format) <<", b=" <<(*b+format) <<", c=" <<(*c+format) <<"\n";

Using the default format has not changed; it is still like this:

     std::out <<"a=" <<*a <<", b=" <<*b <<", c=" <<*c <<"\n";

Changes you might need to make:

* "PrintHelper" has been changed to "Formatter" throughout.

* virtual print() methods consistently take two arguments:
     virtual void print(const BaseSemantics::...Ptr&, BaseSemantics::Formatter&) const;

* The "object + format" is short for "object->with_format(format)", which returns a pair
  for which a "ostream << pair" function is defined which knows how to call the object's
  virtual print() with the formatter.

If you never used formatting and didn't reimplement print() in subclasses then you probably
don't need to change anything.