Api refactor

Currently, the API is very "closed" from a code perspective, which makes it almost impossible to do good testing etc. This pull-request aims to split things out to be more modular and reachable for testing etc.

Primarily, this means all API "actions" are done via hooks (specifically filters)

`wpr_api_get_wp_version` for example, is then hooked to a function get to return the data.

@danielbachhuber no rush on looking at this, but would be good to get your input.