Wrapper for browser history's push state with some niceties