constexpr Constructors

Made the constructors which take a T and create an engaged optional containing it constexpr.

These constructors also no longer unnecessarily use placement new.
constexpr Constructors

Gave nullopt_t and in_place_t constexpr constructors.
hash

Changed hash<optional<T>> from a class to a struct.