Restore actual viewport in FrameBuffer.end() method

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