Add support for optional configuration

It can be useful to mark some configuration as optional when we want to
conditionally enable a part of our application.

We can specify an optional configuration variable in a configuration
definition like so:

``` clj
(def definition
  {(? :memcached) String
   :user String})

(conf/transform definition {:user "jcf"})
;=> {:user "jcf", :memcached nil}
```