Fixed the Option class such that it is no longer inheriting from Union and now has functional pattern matching features.

Started creating the API docs.

Added some more unit tests.