Change :valid hack to class not-empty for inputs (also add email type)

1b61b7a
Also fix for 
Uncaught TypeError: Cannot read property 'getDOMNode' of undefined 
focus: function() {
  	if (this.isMounted()) this.refs.input.getDOMNode().focus();
  },