Fixed invalid version string on git

Git commit hashcodes are not compatible with the 16bit integer values found in .Net version numbers. Use the git commit count as a version number instead.
Use separate process for executing examples

Using a separate, isolated process protects against incompatible interactions between the Example Browser (WinForms) and the executing example (native or SDL). It also protects the main GUI from crashes in the example code.
Marked class as partial

This allows extension of the class without touching the upstream code.
Added Sync object for SDL
Improved diagnostics in Dispose()

Leaked and disposed resources are now always reported.