Fixed premultiplied alpha. Removed GraphicsUtil.PremultiplyAlpha().
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.
Suppport for all Bitmap PixelFormats.
Merge branch 'PremultiplyAlpha' into MorePixelFormats
Rebase off of PremultiplyAlpha.
Merge pull request #1252 from SickheadGames/PremultiplyAlpha

Fix for Premultiply Alpha.
Merge branch 'develop3d' into MorePixelFormats
Merge pull request #1253 from SickheadGames/MorePixelFormats

Support for all PixelFormats
Ignore mip maps for non power of two textures when device doesn't support them

Added a GraphicsCapabilities class to test for non-power of two texture support. In the future this can be extended to test for other things.

This feature is important because when you supply non PoT mip maps and the device doesn't support them, you will GL errors. Also, on Android some devices support them and others don't, meaning you may test your game and have it work fine but once released it will crash on other devices.

The support for mip maps with non-PoT textures is patchy, but more and more devices have support so it'd be a shame to disable it outright.

So far I've tested on an iPad 1, Windows 7, Android 4.0 Samsung GalaxyS2, and a MacBook (not pro).

The only part I'm not confident about is the handling of OPENGL non-GLES platforms (ie desktop PC, Mac and Linux). I took the advice given here: http://aras-p.info/blog/2012/10/17/non-power-of-two-textures/ (OpenGL section), which suggests a more reliable way of deciding on PoT support is whether the card supports 8192 sized textures. This is pretty safe. The only risk is that certain older devices that don't support 8192 textures but do fully support non-PoT textures will have their non-PoT mip maps discarded. Not likely to be a problem IMO as non PoT textures are mostly for UI elements and not likely to have mip maps anyway.
Merge pull request #1254 from Aranda/npot

Ignore mip maps for non power of two textures when device doesn't support them
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