Prefer aliases over refers + minor docstring changes

A stylistic change to avoid :use in the ns declaration.
Update dev project dependencies
Warn about unknown option entries at development time

I have noticed some confusion about the new API. For instance, users are
using the old :flag entry from cli/cli to try to denote that an option
is a boolean flag.

Hopefully, a friendly warning during compile time will encourage a
closer look at the documentation.
Support multiple validations

Jean Niklas L'orange, in TCLI-9:

> In many cases, I have input arguments where I want to perform multiple
> validations, and return different error messages based upon that.
> Would it be reasonable to have multiple validation functions, or being
> able to have a validation function returning nil if no errors exists,
> and an error string if not?

This is an implemenation of the first suggestion, multiple validation
functions.

The :validation entry can now have multiple entries, which are
partitioned into pairs, then split into the vector entries
:validation-fn and :validation-msg. It would be nice to have
a pluralized key name here, but we decline this for backwards
compatibility.

Non-collection values of :validate-fn and :validate-msg continue to be
supported by conditional wrapping.

Example:

    [["-f" "--file PATH"
      :parse-fn io/file
      :validate [#(.exists %) "File does not exist"
                 #(.isFile %) "Path is not a regular file"
                 #(.canRead %) "File is unreadable"]]]

Addresses TCLI-9.