Fix Behavior onShow and onDestroy

Currently, `onShow` and `onDestroy` have a couple problems:
+ `onShow` and `onDestroy` are unecessarily wrapped in Behaviors 
+ the `show` and `before:show` events are being triggered through the region's `triggerMethod` so they're not proxied to the view
+ `onDestroy` is called twice, `onShow` would also be triggered twice but `show` event is borked

With these fixes, show and destroy are both triggered through `triggerMethod` like the other events.

##### Disclaimer
I'm not sure if `Region#show` can take a Backbone View, so I handle both cases here. Whatever we decide,  I hope the implementation gets cleaned up. I just wanted something that worked to start the discussion.