DIBitmapWrapper: Separate the case of that bpp is 8

If bpp is greater than 8, just construct base class.
If bpp is less than or equal to 8, call 'SetColors' after initialization.
BitmapInfo: Simplify 'GetColors'
DIBitmap: Remove non-const 'GetColors' accessor

 Remove non-const accessor which may cause unexpected illigal state.
 Changing color table through this non-const function will produce gap
between color table in 'BITMAPINFO' and in device context.
DIBitmapWrapper: Remove non-const 'GetColors' accessor
Revert "BitmapInfo: Simplify 'GetColors'"

This reverts commit 56e332bbe05be6c4ceb382dff2361da4013b4dbb.
BitmapInfo: Make non-const accessor private

 Move non-const 'GetColors' from public to private.
DIBitmap: Fix old code
Rename 'DIBitmapImpl' into 'BitmapResource'
Remove 'union' from 'RGBTri' and 'RGBQuad'
Organize including headers
Remove unused prototype headers
Add 'FreeHeap' class

Add the class which manages heap created by 'HeapAlloc'.
It calls 'HeapFree' automatically when it destructs.
Inherit 'private Uncopyable' explicitly
Use 'FreeHeap' in 'BitmapInfoPtr'
Rename 'DCDeleter' into 'DCDelete'
Rename 'ObjectDeleter' into 'ObjectDelete'
Rename 'ObjectSelecter' into 'ObjectSelect'
Rename 'Get' of 'DCDelete' into 'GetHDC'
Rename 'Get' of 'ObjectDelete' into 'GetHGDIOBJ'
Rename 'pbits_' in 'MemoryDC' into 'pbytes_'