Deprecated C++11 compat module + minor doc improvements.

The C++11 compatibility module is no longer being developed as C++11 support
has greatly improved.  Therefore, the compatibiltity module (both `cxx11.hpp`
and `optional.hpp`) as well as many utilities in `cxx11.hpp` have been
deprecated.  In particular, the following utilities have been deprecated (for
alternatives, see the docs on these functions):

    struct cal::get_iterator<T>;
    #define CALICO_DECLTYPE(expr, fallback_type)
    #define CALICO_ENABLE_IF_P(condition, type_expr)
    #define CALICO_ENABLE_IF(condition, type_expr)
    #define CALICO_UNPARENS(type_expr)
    #define CALICO_VALID_TYPE(type_expr, return_type)
    #define CALICO_VALID_VAL(value_expr, return_value)
    Iterator std::begin(const std::pair<Iterator, Iterator>&);
    Iterator std::end  (const std::pair<Iterator, Iterator>&);

(Note that although `CALICO_ENABLE_IF` and `CALICO_VALID_TYPE` are deprecated,
they will continue to be used internally for documentation purposes and also
to save typing.  They have been duplicated in `utility.hpp`.)

The following utilities have been moved to other headers.  Their previous
versions in `cxx11.hpp` still exist but they may have slightly fewer features.
Guards have been implemented to prevent them from being defined more than
once, so the first header that's included is the one that gets defined.

    // utility.hpp:
    struct match_cv<T, Target>;
    struct valid_cal<F(...)>; // Accepts 5+ args; requires variadic templates
    struct unparenthesize_type<void(TypeExpression)>;

    // string.hpp:
    std::string to_string(const T&);