Popover improvements

Fixes a positioning issue where the Popover component wouldn't position itself when within `position: fixed`. This means that the target now attaches itself to the body of the page when activated, then returns to its original location when deactivated.

It also now takes into account `padding`, `margin` and `border` applied to the `<body>` of the page,  which jQuery doesn't include when using the `offset()` method.