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.
Add copyright to spec.go
Remove expectPersistent from test struct
Address review comments
Address review comments
Merge pull request #1176 from axw/storage-directive

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/)