Updates to reflect code review

Removed (one of) the sentinel classes. Keeping a sentinel with
appropriate methods removes a lot of `== null` checks from the code.
Having separate sentinels for head and tail was stupid though :)

Removed the list view class. Remove `next` and `prev` setters
from ListNode. `next` and `prev` getters now return `null` instead
of returning the sentinel (_next and _prev still return the sentinel)