Added support for packages from any URL
Refactored CreateCommand

Created a ```PackageLocation``` that includes the remote and cache
locations. Then seperated the CreateCommand into several smaller classes
for better separation of concernts. This will allow the smalled classes
to be unit tested specifically and cleaned up several classes that were
doing too many things.
Fixing codenarc errors
Fix adding of files with git integration.

The integration test for this was occasionally failing. I think it was because
the code didn't wait for the external processes to finish before executing the
next one. So added some `waitFor()`s in.
Merge branch 'process_templates_from_url' of https://github.com/kyleboon/lazybones into kyleboon

Conflicts:
	lazybones-app/src/main/groovy/uk/co/cacoethes/lazybones/scm/GitAdapter.groovy
Removed unnecessary uses of `CreateCommandInfo`.

The `CreateCommandInfo` class should only be used by `CreateCommand`. So I
refactored the various utility classes that were referencing it to accept
just the bits of the class that they needed.
Fix installation from URL and add functional tests.

Installing from a URL was failing because the URL was included in the cache
location. The new integration tests cover both a HTTP and file URLs.