test(components): add unit and functional tests, go integration tests

@smothiki and I added existing unit tests to a `make test-unit` target in each Makefile and wrote new Go tests to test each Docker container as `make test-functional`. `make test` runs both unit and functional tests, which we're calling a "component test". We also rewrote the existing Ruby/rake vagrant-smoketest in Go for homogeneity, and it represents the starting point for more complete integration tests.

There are some rough edges here still that we will fix iteratively, but at this point the tests all run (this branch currently powers both http://ci.deis.io/view/component%20tests/ and http://ci.deis.io/view/example-apps/). :sweat_smile: 

If you are reviewing the code, note that 80% of the diff are vendored Go files.