Better adherence to best practices

The code includes some structural changes:

1. Use `jQuery.fn.extend({ html5_qrcode: function(){} })` rather than `jQuery.fn.html5_qrcode = function(){}`
2. Rather than appending HTML and then querying for it, just build the HTML and store a reference to the resulting nodes. This removes the need for defining ID attributes (which eliminates the risk of name conflicts). It also ensures that users can call html5_qrcode on elements that haven't been attached to the DOM yet.
3. Always return the jQuery object to enable function chaining.