Allow display of labels instead of input tags

Since most browsers don't allow web developers to apply styles to file
inputs, it's common practice to show a styled label and position the
file input off the screen.

This commit allows FileReader to work with such a setup.

e.g. if we had:
```html
<label style="background-color: red; font-color: blue;">
  Click Me!
  <input type="file" style="position: absolute; left: -99999px" />
</label>
```
the user would see and interact with our styled 'Click Me' text, instead
of the default file input.