Pass arbitrary navigation params to router

Link components and other navigators can now pass to routers arbitrary params by
using navigate(path, params, cb) method. On popstate/hashchange event those
params are now {isPopState: true} so router could differentiate between
different types of navigation.