Clean up implementation

I decided I liked the method names for the insert on a given Node better

Renamed ListNode.insertBefore to ListNode.append
Renamed ListNode.insertAfter to ListNode.prepend

Also,
* Replaced a lot of sentinel checks with isEmpty checks.
* _ListSentinel no longer keeps a reference to the list.