[FEATURE] Allow createElement to take a hash of attributes

Should close out #87.
The up-front detection of `canSetNameOnInputs` should be used to decide if a slow or fast version of this method is defined. That's the pattern throughout this file where two versions of a method may exist.