Add "base" option. Read files asynchronously. Refactor regular expressions.

I have made numerous improvements to this plugin.

- Added a "base" option along with a passing test for it.
- Files are now read using the non-blocking `fs#readFile`.
- Regular expressions have been refactored to be more human-readable and reuse repeated sub-expressions.
- Tested on a project of my own and it works exactly as-advertised.