Supporting tagging images during build

Resolves #213 

Includes:
* docs
* validation for `tags` as list not string or dict
* unit tests and an integration test

The first commit was some small cleanup in preparation for this change. `_build_tag_name()` would be confusing since it's not related to `tags` exactly. I believe `full_name` is more clear here because it's the name used by fig to uniquely identify this service, not just the image name.

The new unit tests also found a bug where `BuildError()` was not being called correctly.