Update texture information

`Texture2D::initWithData` calls `initWithMipMaps` and returns immediately.
So `contentSize` is not considered.

This change checks the result of `initWithMipMaps`,
and updates member variables according to `contentSize`.


`GridBase::initWithSize` passes next-power-of-two pixel size
and original contentSize,
so `GridBase` is affected by this change (I'm sorry but I have not confirmed.)