A DeployableChain is a container which manages dependencies between Deployables. You
deploy() them in, then call rebuild() which will set up a chain, correctly ordered according
to the constraints in the Deployables.
Deploy a Deployable into this chain. Note that this does NOT order yet. The idea
is to deploy everything first, then call rebuild() to generate the fully ordered chain.
This method will validate the Deployable, including confirming that it's compatible with
any previously deployed item of the same name.