Allow registerLanguage to take multiple types

This is so we can take the `language` param as either a function, that takes
one argument of the hljs object, or just the language object itself.
Update docs for the multi-typed language param
Merge branch 'flexible-register'