Use the new "sexy" validations in Viewport

As pointed out by Rubocop. Also, this commit adds a top-level class
documentation comment to this class.

Change-Id: I4e4cea055c2c2284b0d742bea3ceb9ff285fa71c