Plugin refactoring to solve CRM-12616

This is a major rebuild of the plugin that solves the issues described in CRM-12616.

Full instructions for this can be found in the [README for the 'hooks' branch](https://github.com/christianwach/civicrm-wordpress/tree/hooks#hooks-branch-instructions) on my fork. I've removed those instructions for this PR but left the generic README in place.