Outsource all the BCrypt heavy lifting to a library