storage: add Directive, Specification

We introduce two new structures: Directive and Specification. Directive contains user-specified requirements, while Specification contains both user-specified and charm-specified requirements.

There is an associated ParseDirective function that will be used by "juju deploy" and "juju add-unit" later.

(Review request: http://reviews.vapour.ws/r/487/)