Enhanced Viewport struct.

This patch added comments to Viewport, added few new useful constructors, improve performance of Project and Unproject methods by using fields instead properties.