Allow possibility of building without a pre-existing tag.

New builder will not require a tag to function, so we need to remove
assumptions in the CLI about looking it up beforehand and let the
builder itself handle this.
Start building with external sources and no tag.

Currently uses the files in the directory where tito was initially run, hoping to make this smarter and more useful soon.
Replace external sources in spec file copy during build.
Extract version/release in external source builder.
Restore building of specific tags.
Refactor builders to allow separate modules.

You can still reference as tito.builder.Class, but the actual class can be in a
separate module if desired. See __init__.py for the imports that make this
happen.
Remove some dead code.
Merge branch 'master' into sourcefetch

Conflicts:
	test/functional/singleproject_tests.py

Technically not a merge, did a bunch of work only to discover I was mid-merge when I did it.
Make external source builder fetch strategy configurable.
Refactor to just one config object.

Instead of passing package specific and global config around separately, parse
them as one config object where package specific can override global should the
same sections and properties exist.

If you maintain custom builders/releasers, they will need to have their
constructors updated.
Fix issue with releaser temp dir.
Rename to FetchBuilder.
Rename --builder-arg to just --arg in build command.
More testing.
Add support for passing builder args through a releaser.
Support release with fetch builder.
Fix releasers and respect offline flag.
Add some documentation for FetchBuilder.