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.
OK, from a consumer's perspective, it's clearer. Although I think this would clutter the PasswordFactorySpiImpl, as the `encode()` method would be in there. Perhaps a compromise would be to indeed create a UnixSHAPasswordFactorySpi, and get delegated calls from PasswordFactorySpiImpl? This way, a consumer still uses only one class, but work is done on specialized ones.