API: Add all UI visible models, add API docs, and restructure the API implementation.

This PR is basically #309 on steroids. It adds advanced API filtering, implements endpoints for every UI visible model including keyvalues (resolving #321), totally changes how the API implementation is organized, groups the endpoints by `core`, `dns`, and `dhcp`, and basically makes the API a lot better. It also advances work on #154 by expanding `docs/api/intro_curl.rst` and creating `docs/api/intro_curl.rst` to cover all basic API usage using Python and curl.