Switch mapClickMode to use topic subscribe/publish.

These are the available topics:

    - `mapClickMode/setCurrent`: set the current mapClickMode
    - `mapClickMode/setDefault`: set the current mapClickMode to the
    default mode

With this change, the management of infoTemplates for feature layers
is moved to the Identify widget (from the Editor widget). This gets all
infoTemplates "out of the way" whenever the mapClickMode is not
identify (currently that applies to Edit/Draw/StreetView/Measure)

The Identify Widget had a dependency on the old TOC widget. This
dependency was removed and the widget will work regardless of the
presence or absence of a TOC widget (old or new).

Also, the identify widget was enhanced so only feature layers or graphic
with an infoTemplate will be identified. Previously, graphics without an
infoTemplate added to the map by other widgets such as Find and Draw
would interfere with the identify.

Addition topics added to Controller:

    - `viewer/togglePane`: toggling a sidebar Pane
        (can force open or closed)
    - `viewer/loadWidget`: load a widget sometime after the app
        is initialized (untested)
    - `viewer/handleError`: centralized error handler
        (no more console.log statements in widgets!)
topic was declared twice.

also worth noting is subscription to "attributesTable/selectFeatures"
which allows the StreetView widget to be controlled from the upcoming
attribute table widget.
Update Controller.js for use with LayerControl widget.
add topics for floating title pane events - open/close/dock/undock.
Replace console.log statements with centralized error handler using
topic.publish.
Standardize parameters for published error as `source` and `error`.
Update use of proj4js to version 2.2.2
add `isDebug` property to config file (was looking for `debug`
in prior commit)
moved use of global `app` var from index.html to Controller.
set `window.app` when in dev/debug mode from within Controller.
convert 2 instances of console.log in Controller to use new handleError
function.
also hide the sidebar collapse buttons when sidebars are hidden for
tablets/phones by media queries for small screens.
created CONTRIBUTING.md and COMMITTERS.md to help contributors and
future prospective committers.
revised README.md.
Correct link to CONTRIBUTORS.md (not COMMITTERS.md)
Correct link to CONTRIBUTING.md.
remove the obsolete `GeoLocation` widget.
Added `createDefaultInfoTemplates` property. Setting it to false will
  prevent infoTemplates from getting created when layer is not
  specifically included in the config.

Refined the management of infoTemplates when mapClickMode changes. Now
  ALL graphics layers are managed. Previously it was just the
  operational layers in config/viewer.

Added additional logic to ensure that IdentifyTask does not execute for
  feature layers from a feature service.
Added listeners to reposition the sidebar collapse buttons on
media query change.

removed some previous tests in css.
removed an extra double quote.
Add LayerControl widget.
Replace TOC widget with LayerControl widget in config.
Cleanup unused vars in some of the dijits.
more cleanup of unused vars in dijits.
remove console.log statement.
Merge branch 'develop' into feature/MapClickMode-by-topic

Conflicts:
	viewer/js/gis/dijit/Draw.js
	viewer/js/gis/dijit/FloatingTitlePane.js
	viewer/js/gis/dijit/Growler.js
	viewer/js/gis/dijit/Print.js
	viewer/js/viewer/Controller.js

Used my copy for each of the files in conflict.
Will merge those manually.
Only significant diff is in Controller.