Refactor path

This branch closes Issue #790 by:

* Creating a generic path resolution mechanism
* Moving all the plugin-specific knowledge about paths/links back into the plugins
* Registering all the resolution methods back into Nikola on plugin initialization

This should cause no change in output, except that it seems there was a bug where SLUG_TAG_PATH affected
all other path mechanisms (which was wrong)