Renamed Map::get to Map::getOptional; added new Map::get

* Map::getOptional returns a boost::optional<>.

* Map::get returns a value which must exist in the map.
Added two new built-in command line actions

* showHelpAndExit: similar to showHelp except it also exits
  the program with the specified status.

* configureDiagnostics: configures a specified Sawyer::Message::Facilities
  object or lists its status.  This action is usually attached to
  the "--log" switch.
Added Sawyer::Optional

* Replaced all occurrences of boost::optional with Sawyer::Optional.
  This is partly to work around problems with older versions of boost
  and Microsoft compilers.

* Renamed the "get" method to "getOptional" in IntervalMap and IntervalSet
  for consistency with other containers. (TODO: add a new "get" method
  after a short while that will behave like a dereference operator.)