Fix #183

Cause: delete(size - 1) would always set tail to null. Subsequent
add()s would then create a new list (add => addToTail), but continue to
use the old list’s length (length is never reset, only incremented and
decremented), which caused some AssertionExceptions later on.

Fix: set tail to cell instead of cell.rest (which is null).

Also adds a test case for the bug.
Fix other bug mentioned in #183

In #183, I also found another bug that I didn’t report as a separate
issue:
https://github.com/ceylon/ceylon-sdk/issues/183#issuecomment-32129109
Error: LinkedList.delete() would return the element *before* the deleted
one
Cause: @gavinking changed the iteration (to eliminate a ‘prev’ variable)
by always checking one element ahead, but (presumably) forgot to update
the return statement to reflect this change
Fix: Return ‘rest?.element’ instead of ‘cell.element’

Also adds a test case for the bug.
Merge pull request #184 from lucaswerkmeister/master

Fix two LinkedList bugs