Prevent _clamp from altering bounds

It's currently possible to specify the viewport bounds, but the _clamp function will overwrite them.

This simply changes how _clamp compares/adjusts the viewport so that the bounds aren't modified.
Merge pull request #647 from starwed/bound-clamp-fix

Prevent _clamp from altering bounds