Duplication: `AvlTree` methods `first` and `last` had their functionality extracted into `farthest`.  Also added `emptyGuard`.