Add naive custom element support

JSX will render `<custom-element />` as `custom-element()`. Rendering it as `CustomElement()` sounds like a better idea, because it is syntactically correct. If we operate on an assumption, that custom elements names map to React displayNames with this convention, we can build React-driven web component:

```
/** @jsx React.DOM */
var MyComponent = React.createClass({
  render: function(){
    return (<p>Hello {this.props.name}</p>);
  }
});

var MyComponentPrototype = Object.create(HTMLElement.prototype);

MyComponentPrototype.attachedCallback = function(){
  var props = {};
  Array.prototype.forEach.call(this.attributes, function(attr){
    props[attr.name] = attr.value;
  });
  React.renderComponent(MyComponent(props), this);
};

document.registerElement('my-component', { prototype: MyComponentPrototype });
```