Fix result<void>::operator bool returning the inverse value

Fix result<void> disallowing assignment from error condition enum
values.
result<void> constructors are no longer explicit
Add tests for result<void>
Finish documentation for result<T> (closes #13)

Add several additional static_assert's to result<T> (to reflect the
notes in the documentation)
Add small notes for expected<T> and the N4015 proposal