Added events for KeyUp and KeyDown

The KeyUp and KeyDown methods are very important for low level keyboard
access but in MonoGame the general solution of overriding the view
cannot be done so I expose both as events.
Added PipelineBuildEvent.Extension.
Added "Cleaning" log message.
Add error if the source file does not exist.
Fix a runtime error when getting GraphicsCapabilites in Linux
Revert "Added events for KeyUp and KeyDown"

This reverts commit c4f6d7a84a181ce1c8616913f9126639fd15839e.
We now write a log of all the source files processed.
We can now properly clean files that have been removed from the previous build.
Added /incremental flag to disabling cleaning of previous files.
We now remove duplicate input source files.
Added SourceFileCollection.cs to MGCB for Linux and Mac.
Fixed debug config in Linux and Mac csproj.
Added target /platform, /profile, and /config options to MGCB.
[MacOS] Added an optional Delegate to GameWindow

Added an optional Delegate to GameWindow to allow custom GameWindow
implementations to be used.
Merge pull request #1257 from SickheadGames/mgcb2

Even More MGCB Improvements
Merge remote-tracking branch 'upstream/develop3d' into develop3d
Merge pull request #1255 from dellis1972/develop3d

Fix a runtime error when getting GraphicsCapabilites in Linux
[MacOS] Changed Delegate to CreateWindowDelegate
Merge pull request #1256 from SamuelEnglard/develop3d

[MacOS] Added an optional Delegate to GameWindow