Don't return a feature if there are no coordinates
Merge pull request #2024 from twpayne/igc-invalid

Fix IGC handling of invalid IGC files
Adding a JSDoc configuration for generating metadata on exported symbols

This generates info for all symbols annotated with "@todo api" (when Plovr is replaced, this will become "@api").  Generated metadata is written to stdout.  A separate process will handle the output.
Add a task to generate metadata on exported symbols

This runs JSDoc with the "symbols" config, providing a list of source files that have been changed since the previous run.  The output is used to generate a symbols.json metadata file containing all exportable symbols info.  A separate task will be run to generate the exports.js file.  These same metadata files will be used by a build tool.
Annotations for exports
Removing old *.exports for completeness
Write out sorted symbols, excluding inherited ones on private classes

There are cases where a private class may inherit an exportable member (e.g. ol.DebugTile_#getTileCoord comes from ol.Tile#getTileCoord).  We want to avoid making these exportable.
Allow main method to be called from elsewhere
Task for generating a limited set of exports
Use new generate-exports.js task
Regenerate symbols if parents have changed

The generate-symbols.js task runs JSDoc on source files.  Because this takes a long time (13s) to run on the whole library, the resulting symbols file includes additional metadata to make it possible to do incremental symbol generation on subsequent runs.  The 'path' and 'extends' metadata for a symbol are used to determine what needs to be regenerated.
Call generate-symbols.js from build.py
Unused script
Generate symbols before exports
Build task for driving the compiler
Parse options and add docs
Accept a src config, add docs
Use symbols.json for determining the API

Also to get rid of regular expression parsing, instead of
collecting exports for observables from the source files, we use
the 'observable' annotations.
Include symbols from oli.js using interface and implements tags

Instead of regex parsing, we define tags for interface and
implements.
Greatly simplify and document the usage of JSDoc

This commit simplifies the exports.js plugin so it only relies
on the stability notes to generate the documentation, which
completely decouples it from the exportable API.

As a rule of thumb, whenever something has an 'api' annotation,
it should also have a 'stability' annotation. A more verbose
documentation of ol3 specific annotation usage is available in
the new 'apidoc/readme.md' file.

This commit also modifies all source files to implement these
usage suggestions.