READY: Allow patterns

@rickbergfalk 

This PR maintains the parseDirectory and parseDirectorySync methods, but refactors some logic into reusable components. Namely, it adds the following methods:

1. parseMatches and parseMatchesSync: Allows more fine-grained control over which `.md` files will be processed
2. parseFile and parseFileSync: Parse a single file
3. parse: Parse a string of markdown. Used by all the other methods after reading the file, so it's sort of a utility, but could also have independent use cases.

Additionally, I added more comments, and entirely overhauled the tests to use grunt, mocha, mocha-given, coffee-script, and indeed.