feat(*):#867 - start of templating rewrite

Completed:
    - Moved template HTML out of js file
    - File/module to handle template-related tasks
    - All UI-related features should still work

TODO:
    - try to avoid setting style attributes in js
    - don't blow up if a template element is omitted
    - caching to avoid frequent re-selections
    - comments in code
    - comments in default template file
    - ensure default template file is included with dist zip
    - unit tests
    - update docs
    - fall back to core mode if template doesn't exist
feat(*):#867 - fix overridden button case
feat(*):#867 - fix disable default dropzone case
feat(*):#867 - allow template items to be omitted

Except for:
    - qq-uploader-selector
    - qq-upload-list-selector
    - immediate child of qq-upload-list-selector

[skip ci]
chore(test/uploader-demo-jquery.coffee): remove listElement option from manual test file
feat(*): #867 - stop applying style attrs in js

Except for DnD module

[skip ci] - still need to fix unit tests
feat(*): #867 - stop applying style attrs in js

Forgot about drop processing graphic

[skip ci] - still need to fix unit tests
feat(*): #867 - make progress bar more flexible

[skip ci] - still need to fix unit tests
feat(*): #867 - fix delete/retry visibility

[skip ci] - still need to fix unit tests
feat(client/js/templating.js): #867 - descriptive error if tempalte can't be loaded
docs(*): missing information in getUploads method documentation
docs(*): missing information in getUploads method documentation [skip ci]
fix(test.html): Fix incorrect source paths for test.html page

You can test with Mocha and the test.html page by running the
command:

```
grunt connect:root_server
```

This starts a server on port 9000 which you can access to visually
investigate mocha tests.

The URL: http://localhost:9000/test/test.html
fix(test/unit/iframe.xss.response.js): Pathfix for non-Karma runs
test(*): #867 - unit tests should be passing again

TODO: Make these tests better and write new ones
chore(Gruntfile): #867 - Make default_template.html part of build
feat(client/js/uploader.js): #867 - re-add dropActive classes opt

[skip ci]
chore(*): Rev version number to 4.0

[skip ci]
docs(client/html/default-template.html): #867 - header comments for integrators
docs(docs/api/options-ui,jmd): #867 - template option documentation