Better fix for me.Renderable.inViewport with nested ObjectContainers

- Does not modify the object or viewport, so the translation is not visible to the object while updating.
- Uses a temporary me.Rect as a translation context (acts as a stack)
- Translation context is used for the viewport hit detection, instead of the object.