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.
Ya, I suspect I will be using it that way myself.  I'll add a `user/tag-with-user-and-version:latest`