Rewrite app.js, add opportunity to skip upload

app.js should be much cleaner now. Additionally, files are hashed on the
client before we upload them, and we ask the server if that hash exists
before starting the upload. That makes it so that we can often skip the
upload entirely if we've seen the file before.
Add click to upload, closes #81
Make uploading touch-friendly based on user agent
Merge pull request #91 from MediaCrush/click_to_upload

Click to upload, better mobile support