addRule() split into multiple rule handlers

This is the largest refactor for 0.5.0. It takes `addRule` and splits it into multiple methods. addRule() must continue to work as of it's 0.4.x implementation, but it is now deprecated.

This is directly tied to #238 

* `addModuleRule`: transform a module's identifier based on a string or function (had no similar function)
* `addFileRule`: transform a module's final URL based on a string or function (originally `path` in the addRule structure)
* `addContentRule`: **asynchronous** transform the content returned from download (originally `afterFetch` pointcut)
* `addFetchRule`: Provide an alternative method for fetching content (had no similar function)
* `addPackage`: Map a module ID to a common alias location. This is like npm install for your stateless browser sessions (had no similar function)

Docs have been added to https://github.com/linkedin/inject/tree/gh-pages-0.5.0_docs so we can build these without impacting the main injectjs.com site.

@mattpowell needs to look through this as the other owner of RulesEngine