Add test and integTests to check task.
Read app version from manifest.

I no longer generate a lazybones.properties file and instead simply include the
app version in the MANIFEST.MF file.
Fix git integration during functional tests.

It seems that not reading the output from `git` was causing intermittent
failures. Hopefully using `.text` on the `Process` instance will fix that.
Improve configuration processing.

Several of the static constants lurking in the code are now settings in a new
defaultConfig.groovy file. These defaults can be overridden by the user's own
configuration file (whose location is itself configurable). These settings can
in turn be overridden by system properties of the form `lazybones.<setting>`.
So `config.file` can be overridden by `lazybones.config.file`.

The integration tests are also set up to run with a particular user config file
on developer machines. The default configuration is used on the CI server.
Fix CodeNARC violations.