An API for creating named applications with volumes, internal_links, external_ports and interconnecting routes

Not yet ready for review.

Almost ready for a first design review and discussion.

Fixes #185