ELY-5 - Implemented Unix SHA Crypt

This is a first refactored version of the first implementation [jpkrohling/wildfly-elytron/ELY-5-UnixSHACrypt](https://github.com/jpkrohling/wildfly-elytron/tree/ELY-5-UnixSHACrypt), and is *not* meant to be merged, as I'm mostly looking for feedback. 

Things that I'd particularly like to get reviewed are:
- Dependency on JUnit
- Overall coding style (including javadocs)
- Possible performance issues
- I'm not sure I quite understood the architecture, so, would be nice to check if the code is where it's expected to be.

But of course, any kind of comment is welcomed. As I mentioned on the IRC, I found this JIRA and decided to give it a try, just for fun. I'm not sure if you already have a specific implementation in mind for this, but if not, this could be a good candidate.
Here's a link to how I implemented SCRAM pre-digested passwords:

https://github.com/dmlloyd/wildfly-sasl/blob/master/src/main/java/org/wildfly/sasl/scram/ScramPasswordFactorySpiImpl.java
and
https://github.com/dmlloyd/wildfly-sasl/blob/master/src/main/java/org/wildfly/sasl/scram/ScramDigestPasswordImpl.java