misunderstanding of how random works.  Rewrote remove arbitrary to be a little clearer as to function.
added printer to avoid infinite recursion in printing list-elements.
fixed problem where pushing / popping wouldn't update the prev / next element of the new head / tail appropriately.
remove arbitrary now checks to see if the removed element is the head or tail.