Remove redundant conditionals; clean up comments

The difference between while loop conditions current/current.next_node.
With current, the last node will pass the condition and run through the
loop a final time, allow you to do some work with it.  When you attempt
to set current = current.next_node, the value of current will be nil and
the loop will terminate.  With current.next_node, the loop will
terminate with the value of current as the last node.  This pops up most
often when you need to modify or use the final node outside of the loop
in some way.
Clean up comments until they can be made clear