Add c++11 implementation of optional.