Changed Sawyer::Container::Map interface

* The operator[] does not magically insert a new item. This makes
  it behave more like operator[] for vectors and arrays.

* Added insertDefault(key) to insert a key/value pair with a
  default-constructed value, or to replace an existing value with
  a default-constructed value.

* Added insertMaybeDefault(key) that inserts a key with a default
  value only if the key did not already exist.

* Added getOrDefault(key) that returns the value associated with
  a key, or a default-constructed value if the key does not exist.

* Updated CommandLine and Markup to use the new interface.
Working around lack of __attribute__ for Microsoft compilers