Restore actual viewport in FrameBuffer.end() method

Restoring the screen size viewport in FrameBuffer.end() caused loosing of custom viewport (e.g. used for resolution independence) and duplication of glViewport call as workaround.
Changed restored viewport sizes to actual sizes acquired in FrameBuffer.begin() method.