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.
Merge pull request #423 from henri-astre-msft/fitBoundsWithConstraints

add fitBoundsWithConstraints() to the viewport.