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.
As convenient as the ID mechanism may be, I think we should only use algorithm name to identify password algorithm.  It is possible that we might expand this password type beyond anything that happens to be represented in string form with a single character.  For example, SHA-3.