Modify optional component to allow for a mostly constexpr interface for Issue #1

Add tests specifically for constexpr optional (keeps the 'default'
implementation clean)