DSL: add `spec` stanza, defining DSL specification version for a Cask

References: #4688

Renamed `spec` from earlier proposed stanza `dsl`.

I remain conflicted about adding boilerplate to the Cask language.  Simplicity is
what makes Casks amenable to first-time authors, and first-time authors are the
principal drivers of this project.

However, the technical advantage of specifying the DSL version is pretty hard to deny
if we merge #3066 — which is also seeking simplicity, in the form of very straightforward
bookkeeping.

The alternatives to #3066 are: binary serialization (which will break), or creating
a new log format which largely duplicates the info in the Cask DSL — which requires
much more new code.  Also, both alternatives would reduce transparency to the
user.