Don't close views we are going to show

At present, if you have a view that is visible in a region, and you call .show and pass the same view again, .close will be called. .close will call .remove will call .stopListening which will unexpectedly unbind events from a view which is still in use.

This patch changes the behaviour of Region.show to only call close & open if the view being show differs from the current view. If the view is the same as the current view, it simply re-renders it.