Add custom component properties

This adds a way to specify custom component properties when creating a
React class, like, for example, 'key'. It is may be useful when e.g. you
work with ReactCSSTransitionGroup.

This commit extends defcomponent and component so now they accept
optional map, which will then be used for React.createClass. New syntax
is:

```clj
(defcomponent Bar "desc" [data] {:key "foo"}
  (dom/div ...))
```

and

```clj
(component (fn [data] (dom/div ...)) {:key "foo"})
```