Added fadeout to gh-popover

Closes #2868
- Uses jQuery's `.fadeOut` whenever a popover is closed.

- Reordered `gh-popover`'s code into something a bit more logical and, if I may, pretty
- Renamed `open` property into `isOpen`. `isOpen` should only be manipulated via `close()` and `open()`
- Added `closing` property to help track state in the case of rapid clicks on a popover's button, allowing us to abort
` Added `open()` function