Improvement and update for ImageInput

Several things have been done.

1.) ImageInput JavaScript code has become more modular. All current functionality was namespaced under `window.ImageInput`.
2.) Use of jQuery for DOM manipulation.
3.) Each instance of ImageInput will have an object with all necessary DOM elements and properties cached.
4.) Instead of a very primitive `onclick` invocation from within the HTML template, the `window.ImageInput` constructor will be called.

**Reviewers**
- @wedaly