Hide and hidden events on tabs

Based on #14768 I've added in two new events for tabs. `hide` and `hidden`

Follows the exact same principal as the rest of these events!
Yeah, the equals signs should line up with one another but at maximally one space after the longest variable name of the block.

```js
var foobar = 0
var foo    = 1
var i      = 2
var bar    = 3
```