Expose tendril dependencies for graphing

You can see in the first commit, I was producing graphviz format from tendril.  I moved this out into api worker.    Exposing the dependency graph in a simple data format (json) makes more sense to start.
Yes. Because the exposed APIs are on a bluebird promise, the tendril object is simply 'bound' to the promise object. This let's us simply extend a bluebird promise without changing how it handles internal state (which would require a fork).
(This does not modify the global bluebird however)