Download and use new proj4js
Update externs and ol.HAVE_PROJ4JS for new proj4js API
Update API to work with custom transforms, including proj4js

All transparent proj4js handling is now in ol.proj.get, and a new
addCoordinateTransforms function makes it easy to configure custom
transform functions. ol.Proj4jsProjection is no longer needed.
Update tests
Update example to show manual proj4js configuration
Update example to show transparent proj4js integration
Use proj4.defs instead of proj4.Proj, to conform with the proj4js API
Doc changes suggested by @probins
Add proj4 to package.json
Allow Proj4js to be loaded after OpenLayers
Update to use the documented Proj4js 2.2.x API
Simplify ol.proj.addCoordinateTransforms

Equivalent projections do not need to be handled here, and the forward
and inverse functions can be function arguments instead of being nested
in an object literal.
Use proj4.js from node_modules/ instead of copying it to build/
Avoid a type-cast
Show both Proj4js and custom transform functions in examples
Clean up after testing
Revert to only accept ol.proj.Projection as argument
Move Swiss transform functions to the .js file
Pass tolerance to ReplayGroup

The tolerance instead of the squared tolerance must be passed to the ReplayGroup constructor.
Merge pull request #2325 from elemoine/imagevector

Pass tolerance to ReplayGroup