feat(*): #963 - Start of work on multiple inputs support

Completed:
   - extraButtons option
   - extra buttons are tracked & functional
   - jQuery object can be passed as element value w/ plugin

 TODO:
    - track default endpoints for each extra button
    - track default params for each extra button
    - enforce extra button specific validation
    - use extra button specific inputName in upload requests
    - addExtraButtons API method
    - allow DnD zones to be connected to input buttons
    - getButton API method
Merge branch 'develop' into feature/multiple-inputs
Merge branch 'develop' into feature/multiple-inputs
Merge branch 'develop' into feature/multiple-inputs
feat(*): #819 - initial extraButtons option integration

- track and normalize some button-specific options
- allow buttons to have specific endpoints via option or setEndpoint
fix(docs/api/methods-s3.jmd): Fix quote escaping
fix(docs/api/methods-s3.jmd): Fix quote escaping
fix(docs/api/methods-s3.jmd): Fix quote escaping
fix(docs/api/methods-s3.jmd): Missing end-quote
fix(docs/index.jmd): #819 - wrong link to extra buttons page
feat(*): #819 - simplify multiple buttons code
multiple file inputs
feat(*): #819 - allow folders to be selected
feat(*): #819 - allow iOS camera access feature to target an extra button
fix(client/js/jquery-plugin.js): of course, typeof null === "object"
feat(*): #819 - getButton method
fix(docs/api/methods.jmd): #819 - typo
feat(*): #819 - enforce validation options attached to a specific extra button
feat(client/js/uploader.basic.api.js): #819 - reset extra button file associations
feat(*): #819 - pass button container to validate event handlers