Add whereBy

Signed-off-by: David Fisher-Moreau <deiform87@gmail.com>
Add first/last and firstBy/lastBy methods

Signed-off-by: David Fisher-Moreau <deiform87@gmail.com>