remove some whitespace
explicit operator bool() const noexcept
rename none_t -> none_type, move to private member of optional
remove instantiation of none_type as per @kkaefer's suggestion
remove none_type and its complicated typedef from detail namespace, add it as private member class to optional
guard against self-assignment
add unit tests for optional type
Merge pull request #31 from mapbox/optional

[tracking] wip optional