Back to old API (with a twist)

Back to the old API. The file input is inserted on require. By wrapping in a `<form>` we can reset the file input, without reinserting the input every click. 

The benefit of this approach over the "new" API is that we can use a single `<form><input type="file"></form>` to power all file-picker's instead of having a form for each instance. We get all the benefits I was trying to achieve with the new API, using the old API. It's not quite as "fluent", but it uses less memory and doesn't require initialization.

Hopefully this will be the last API change.