single now raises RubyPeterV::UniquenessError

* namespace the exceptions
Enumerable#single now takes a select block

* becomes a "detect" with a uniqueness check
single now works with a lazy Enumerable