Make `head` return a value on error
Make `head` return a value on error

Rather than throwing NoSuchElementException, the `head` utility function
returns a value if the given collection is empty. The value is `null` by
default.

hartenfels/Jastics,hartenfels/Semantics4J