Runtime config and change default hash size to equal block size.

* Edited C# versions of PasswordHash to have runtime configurable options for hashing (so that parameters can come from e.g. config files).

* Modified default Hash size to match the block size of the .NET Framework implementation of pbkdf2, per http://security.stackexchange.com/a/51430/28362

http://security.stackexchange.com/questions/17994/with-pbkdf2-what-is-an-optimal-hash-size-in-bytes-what-about-the-size-of-the-s

https://hashcat.net/forum/thread-2238.html

https://gist.github.com/davisnw/991912f1a6fe2b63a73b