Revert "Components.Add(...) should not Initialize Components"

This reverts commit c1544bce033f1d0432bb3ef360aef1707af15976.
GameComponents.Add() and Initializing GameComponents

Solve https://github.com/mono/MonoGame/issues/2105
Related to
https://github.com/mono/MonoGame/commit/c1544bce033f1d0432bb3ef360aef1707af15976

This is closer to XNA behavior.
-Initialization of Components is postponed until the call to
base.Initialize(...).
-Components added inside the virtual Initialize(...) but after the call
to base.Initialize(...) need to be self initialized.
-Components added later are auto-initialized.
remove unnecessary return
Fixed build for Android so that there are 0 errors, 0 warnings.
0 errors, 0 warnings for OUYA.
0 errors, 38 warnings for iOS.
Incorporated comments from @danzel.
0 errors, 0 warnings for Linux.
Mac OS with 0 errors, 4 warnings.
Fixes for 0 errors, 0 warnings on Windows(DX) and WindowsGL.
0 errors, 9 warnings for PSM. All warnings are developer-generated using #warning directive.
Merge remote-tracking branch 'upstream/develop' into tnc_Initialize_Components
Merge remote-tracking branch 'upstream/develop' into tnc_Initialize_Components
Fix vertical font padding in SharpFontImporter
Delete the shader program on link failure.
Fix Mac build.
Merge pull request #1 from mono/develop

pull in updates since October
Implemented "Garbage-Free" GraphicsDevice.GetRenderTargets

Implemented property in GraphicsDevice to get the current Render Count
and overloaded GetRenderTargets to copy to an array you provide instead
of generating a new one (therefore, creating garbage).  Only problem is
that it is the user's responsibility to make sure the array they create
can fit the render contents or an exception will be thrown.
Merge remote-tracking branch 'upstream/develop' into tnc_Initialize_Components
Added Debug.Assert to "Garbage-Free" GetRenderTargets.