use innerHTML for numbers additionally to strings with .html()

Hi, today I saw that doing something like `$('body').html(42)` would not take the `.innerHTML()` shortcut but goes the `.empty().append()` route instead. I do not see a reason why this is the case and added some test cases to make sure the behaviour stays the same like before. Performance-wise this should be much better.