Document the base API of Components and Mixins

I did my best to extract this from the current `component_api.md` file so that it's not coupled to the component instance API, since the API applies to mixins too.

I'll amend the `component_api.md` file as appropriate once this change is approved.