Fix coding style

Use `goog.isDef(x) ? x : {}` instead of `x || {}`
Upgrade to jsdoc 3.3.
Merge pull request #1964 from pagameba/node-jsdoc

Upgrade to jsdoc 3.3.
Merge pull request #1966 from fredj/coding-style

Fix coding style
Use externs/olx.js instead of objectliterals.jsdoc

The single externs/olx.js file describes all of the "options" objects we accept in our constructors.  The @typedef annotations are used by the compiler for type checking.  The @type annotations include documentation for individual options and serve as externs when compiling a profile of the library.  When compiling an application together with the library, the externs/olx.js file is included as one of the sources to provide the @typedef's without generating externs.

If we want to maintain multiple src/*.externs.js files instead of one large externs/olx.js file, we can.  But while we are still using Plovr, it makes for easier build configurations to have one file.

This removes the build tasks that generated the build/src/external/src/externs/types.js and build/src/internal/src/types.js files as those are both replaced by the single externs/olx.js file.
Unused externs and typedef generating code
Parse olx.js and convert types into typedef properties
Adding comment about using externs/olx.js as a source file

The externs/olx.js script includes @typedef annotations for objects that are used in the library.  When compiling the examples together with the library, we need these @typedef annotations.  In this same case, we don't need the object property names to be treated as externs (they can be safely renamed).
Merge pull request #1954 from tschaub/olx

Use externs/olx.js instead of objectliterals.jsdoc.
Don't use 'this' keyword in tileUrlFunction

See a31ad69ec4c0cf530a5f52aad9ada649ea390204
Fixes #1965
Use WMTS server from services.arcgisonline.com