Refactor Popover State

When implementing #14 and #23, I ran into issues with supporting data being passed in from the popover trigger. This pull request refactors popover state management to support additional data being made available to the lifecycle of the popover. It also clean up the popover lifecycle in support of #25.