generalized 'firstChars', and some refactoring towards point-free style

generalized firstChars:
`firstChars :: [String] -> [Maybe Char]`

use firstCharsOrElse instead of firstChars which takes a replacement character

some other refactorings for more concise code with point-free function composition
Safe war bei mir nicht mit System, musste es mit cabal nach installieren. Gibt es da keine Alternative die im Default-Haskell drin ist? Vermutlich kannst du gar nicht sagen was im Default Haskell ist, oder? Wenn Du in Deiner Web-IDE unterwegs bist. Aber vermutlich werde ich das so übernehmen :)