Hyphenate camelcase attributes

These patches add support for auto-hyphenating camelcased attribute names. For instance, `dataSomeAttribute: 'value'` will render as `data-some-attribute="value"`.

The HTML5 spec disallows capital letters in data attribute names, and other attribute names are case-insensitive anyway, so this shouldn't break anything.

Add to that that we are used to retrieving hyphenated data attribute names as camelcase through Jquery, for instance with the HTML `<li data-some-thing="value"/>`, `$('li').data('someThing')` would give `value`. It seems natural to start with camelcase in the server side script when we're going to use camelcase again in the client side script, rather than having to quote and hyphenate on the server side.