feat(configuration): allow ignored link pattern

A pattern to links which should be ignored may now be specified via

links.validate.ignorePattern = /some-ignored-pattern/

BREAKING CHANGE

For easier configuration properties has been changed to the following
form

```
// default config
{
  // link validation options: false || object
  validate: {
    ignorePattern: null, // pattern to be ignored when validating dead
links
    failOnError: true // whether to fail with an error if link
validation detects a problem
  },
  // link generate options: false || object
  process: {
    include: null, // layouted || [ tags ... ]
    exclude: null, // [ tags ... ]
    overrideRefs: true // if heading refs should be re-generated
  },
  logLevel: 'default' // logging level with which to output data
}
```

Closes #3
feat(configuration): allow more fine grained configuration

This commit adds more fine grained configuration options to the plugin
and cleans up the logging output. Additionally it fails after write only
so that generated documents are properly written to disk for inspection.

Configuration

* headings to be instrumented configurable via
  config.process.headings = [ 'h1', 'h2', 'h3' ... ]
* validation may be disabled on a per document basis via
  config.validate.ignoreDocumentPattern = /some-regex/

Logging

* printed out after file generation completes

Fail on Error

* Finish document validation before failing on error if fail on
  error is specified

Closes #3, #4