speed up large pushes by using splice

push is defined to be eager, so there's no point in nibbling the list lazily.