Added improved user role and ssh role.

This is a preliminary commit, no tests, no solid documenation. If you are willing to accept these changes I'll add docs and tests (I know the drill). But it works (I tested it on my developement machine).

Summary of changes
=================

SSHRole
------------

1. Added ability to upload `authorized_keys` file
2. Added ability to override (upload) `known_hosts` file (usefull if you pull your webapp from github and there is popup whether to trust the server). 

UserRole
------------

1. Added code that enables one to compute crypt-compatible hash of arbitraty string. One can even compute hash while being logged on remote computer, have no idea it makes sense --- maybe if one used older developement machine that didn't support newer crypt functions. 
2. Added code that enables one to specify hashed passwords (no need to store plain text admin passwords when only creating user accounts).