add fitBoundsWithConstraints() to the viewport.
First attempt at removing duplicated code

I've created _applyBoundaryConstraints() and _fitBounds() to remove
duplicated code.
adding demo to show benefit of fitBoundsWithConstraints
hiding properly _ functions.
Revert "hiding properly _ functions."

This reverts commit 118c2b2c8735e277a0876f0f38fd683e78aa47e9.
Cleanup for PR comments

- raise 'constrain' event inside applyBoundaryConstraints
- fix demo title/filename
- various fixes (default immediately to false + add private for
documentation)
renaming fitBounds to fitboundswithconstraints

it looks like github for windows is not detecting filename changes when
a letter change from upper to lower case.
Added x and y to drawer.
Added scaling to drawer.
Merge pull request #423 from henri-astre-msft/fitBoundsWithConstraints

add fitBoundsWithConstraints() to the viewport.
Changelog for #423
Merge branch 'master' into ian

fixed Conflicts:
	src/viewport.js
Combined IIIF tilesource and dynamic tileSize
Fixed drawer, renamed source, fixed tests
navigator to request maxLevel tileSize
IIIF 2.0 Tiles test
Documentation and &copy; fix
Missed a Multi in a comment
Missed a Multi in a comment again :(
Merge pull request #441 from azaroth42/master

Combined IIIF tilesource and dynamic tileSize