Enhanced Viewport struct.

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