Added ability to extend the default html5shiv list of elements

In order to e.g. run html5shiv over svg elements as well as the default html5 ones without having to know anything about the default list's contents.

I've left the code changes deliberately verbose in order to make it clear what's going on, but it could easily be cut down to something more concise (a couple of ternary operators should do it)