Replaces hard-coded algorithms for parameterized ones.

Closes #285
Merge branch 'v4.3' of https://github.com/DotNetOpenAuth/DotNetOpenAuth into v4.3