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.
About the charset: I haven't given much thought to this, but my first intuition would be that it would be sensible to set a default charset to a common value. A byte is a byte no matter the charset, but when working on the hash for a given password, it might make a difference. I haven't tested, but wouldn't it cause problems when a password is hashed on one machine with ISO-8859-5, and read/verified on a machine whose default charset is UTF-8?