Un/installer: method to add site to installed list

Makes this code reusable.

See #68
Un/installer: only run updates for newer versions

We only need to run updates for versions newer than the database
version. The code was intended to properly do this, however, there was
a bug that was causing all updates to run each time. This is now fixed.

See #68
Record the IDs of active sites on update to 1.8.0

This is only for when the plugin is activated per-site on a multisite
install.

See #68
Components: add method to get an installer

DRYer.

See #68
Automatically update components when loaded

After loading the active components, we now automatically check if they
need to update, and run the update if they do. This only applies to
components that implement an `un_installer`.

We deprecated the old update function for the points component.

See #68
Unit tests: methods to update components, versions

Introduces methods to update a component and set it’s versions. Updates
the existing tests to use them.

See #68, #219
Points component: 1.8.0 update—record active sites

See #68
Ranks component: 1.8.0 update—record active sites

See #68