viewer: Use an AspectFrame widget in the external viewer, like the internal one

This increases consistency both in behavior (video will not appear letterboxed
when it's not supposed to) and code (making it easier to deal with size-allocate
events to automatically set resolution restriction caps).
viewer: Improve HD playback performance with effects by restricting resolution
[WIP] [SQUASH ME] try to reset the restriction caps right before rendering. This doesn't seem to work.