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.
Should there be tests with the same repo/image name, but different *tags*? e.g.

    - 'user/tag-with-user-and-version:v4'
    - 'user/tag-with-user-and-version:latest'

(Not sure if those tests are useful, but it *is* something that may be used)