[OpenTK] Simplify and improve timing calculations

This patch modifies GameWindow.Run() to use a single stopwatch instead
of two separate stopwatches for timing UpdateFrame and RenderFrame
events.

It improves timing accuracy for issue #20 (FrameEventArgs.Time
Inconsistencies)
[Examples] Cleaned up input device printing in GameWindowStates
[Examples] Calculate timing information in GameWindowStates
[OpenTK] More robust timing for UpdateFrame and RenderFrame

FrameEventArgs.Time should no longer drift from clock time measured
outside GameWindow.
[OpenTK] Implemented GameWindow.UpdateTime and RenderTime properties
[OpenTK] Corrected GameWindow.Update/RenderFrequency information
[Examples] Improve timing information; add vsync toggle
[OpenTK] Fixed Update/RenderTime calculation

These values should only be re-calculated when an Update/RenderFrame
event is raised. Otherwise, they should retain their previous values.
[OpenTK] Improved timing stability

OpenTK now directly calculates the elapsed time between UpdateFrame
(RenderFrame) events and compares that directly to TargetUpdatePeriod
(TargetRenderPeriod). This significantly simplifies the implementation
and improves timing stability.
[Examples] Added keys to modify timing

Use [ and ] to decrease and increase the UpdateFrame frequency.
Use < and > to decrease and increase the RenderFrame frequency.
Merge branch 'timing' into develop