use history push/popstate when supported (ajaxy)