Added fix to not add "required" attr unless field is actually required.

According to the HTML5 spec, the `required` attribute is a boolean attribute. Just having it present (even if it's value is "false") makes the element required. Most browsers will still work with the attribute set to false, but I've made a very small change to not add the attr at all if the original select does not have the `required` attribute. This should hopefully future-proof it in case browser's change their mind. I've only noticed IE8 marking the field as invalid even with `required="false"`.

I've added some basic tests along with it, but if you need me to make them more robust, let me know.