remove call to getBoundaryNode while iterating

it should only need to be recalculated in remove(), not next()
both firstKey and lastKey should throw
dead code