Finalized Core API classes

Made all applicable classes in the Core API final. This is done to
prevent unwanted extension and possible misuse of the API. Let's keep
the API locked down for now and allow extension in some places later (if
we allow this option now it'll be hard to revert this after the 1.0
releases).