Improve JSDoc compliance and add automated checking
Created by: davemevans
This large PR has no functional changes, but makes the documentation more compliant with both the JSDoc3 standard, and the Google Closure standard.
Where it was missing I have tried to add type information etc.
I have also added JSDoc settings to the JSCS config so that any new documentation is automatically checked as it is added. I haven't put a great deal of though into the options, so am happy to change, add or remove options if anyone has any strong feelings.