Rewrite the Component API docs

Make it clear what the Component API is, and remove the base API that is
not specific to Components but mixed into their prototype.

**Please don't merge in, just review**. I'll rebase this once the `docs/base_api` branch is merged into master.