Refactor click handlers on upload button.

closes #2028
- Instead of binding and unbinding the click event, bind the data to the
  outer scope so we can use a standard click handler.
- Use removeProp instead of setting the property to false when enabling.
- Use the `disabled` as value when disabling.
Merge pull request #2042 from mikl/firefox-upload-button-fix