detect and use sha512-crypt for stored password hash.
abstract the authentication to allow sha512 as an additional hash type. only authenticates against a sha512-crypt hash, doesn't save as it.
this has been lying around and I'm finally submitting it. it's the only part of pleroma conversion from gnu social that needs to be in pleroma to make it work.