Specify alternate Bobfile in REST blob

This pull request has quite a few changes, as I went on a bit of a refactoring spree.  Here's a list:

* minor
  - accept path to `Bobfile` as one of the parameters in http invocations of `docker-builder`
    * includes sanitization of the `Bobfile` path to avoid malicious `Bobfile` paths
    * ensuring that we accept a workdir with symlinks just as long as the relative path from the repo top to the `Bobfile` does not contain any
  - implement custom error types for both the builder and the parser

* patch
  - rename top level directories not containing go source files to begin with a capital letter
  - update many dependencies
  - replace calls to `fmt.Sprintf` with `+` when all arguments are strings (better performance)
  - making sure we print error messages with async builds
  - refactor of the parser and lint functinality
    * dramatically simplifying things
    * no longer opening the `Bobfile` an extra, unnecessary time
  - cleaning up some relics remaining from goworker

Addresses the following issues:

* https://github.com/modcloth/docker-builder/issues/104 (partial)
* https://github.com/modcloth/docker-builder/issues/98
* https://github.com/modcloth/docker-builder/issues/96 (just the `Bobfile` path part)


Oops! You're right, I didn't realize Go requires `\` to be used in escape sequences, most other languages just pass the `\<whatever>` through if it isn't an escape sequence. TBH I prefer Go's strict interpretation.

That being said, you could use backticks here to avoid needing to `\\` :smile: