Make $.first and $.last generic functions.
Fix $.difference function.

The "as" operator is not the canonical way of unwrapping optional!
Merge pull request #28 from nubbel/feature/generic-first-last

Make $.first and $.last generic functions.