Refactor all the things.

This commit is a major reworking of the PHP and JS in this plugin, making it practically a rewrite rather than a refactor.

The aim was to split the "God class" in PHP up into smaller classes. It has ended up with one class for each of the four admin pages, and abstract admin class which the four extend, the existing one for the plugin updater (not touched, other than a file and class rename), one main plugin class, and the main plugin file.

Once the classes were split up, the methods could be refactored into smaller methods. This makes the code easier to maintain, and helps make the code more unit testable.

While the JS may be rewritten with Backbone in a future version, I've rewritten it now to make it more modular - clear namespaced binding against named functions inside three named individual objects, all making the code more self-documenting. The ajax calls have been splitted up, so instead of nested anonymous functions for success and failure, it takes advantage of Promises and deferred objects to have clear callbacks. This, along with general refactoring of functions into smaller functions, helped reduce the cyclomatic complexity.

Not done: Rewrite the settings page to use more of the Settings API to generate the output, instead of hard-coding the table layout.
Not done: Some inline docs for PHP, JS, and also contextual help descriptions.
Not done: Whatever I've left marked as @todo.
Class documentation
Merge pull request #4 from GaryJones/feature/refactor

Refactor all the things.
Fix class check, screen icons, library search message.
Add service license terms as required by legal.
API expects article key to be string.
Prevent notices from displaying twice when they are set the first time.
Make checkbox labels clickable.  Default import setting checkboxes to true.
Use yoda conditionals, as per advice of @garyj.
Updates to make license key status work correctly.
Issue #8.  Legal terms update, again...
Move included class files into includes, make including views easier.
Merge pull request #9 from GaryJones/feature/refactor

Move included class files into includes, make including views easier.
Update INSTANT_CONTENT_UPDATE_URL var.
Update to use production API.
Update to version 1.0.0
Bump up version for all functions.
Abstract base API url.
Updates to API url abstraction based on @garyj suggestions.
Merge remote-tracking branch 'upstream/master'