Added support for nullable emails and hireable on DetailedOwner

It turns out email might be null. This caused issues for users such as "Eleonore9". 

I think I got all of the samples. I'm new to haskell (and cabal) and wasn't too sure how to run all of the samples. I resorted to compiling the ShowUser.hs sample file by changing the module to Main and running this at the root:

```
ghc -o ShowUsers --make samples/Users/ShowUsers.hs
```

I'm sure there's a better way. Any suggestions would be great. I can add them to the contrib readme too.