Better implementation of CAS 3.0

This PR covers some minor CAS 3.0 changes I could find in the [current draft](https://docs.google.com/document/d/1l0o60mLfXF4bkQdwRSH4i6P-IJQki3-v-zyoOAjxDd4/) and also supports some of the optional features.

We are not fully compliant with the format specified in "Appendix A: CAS response XML schema" as this would break backward compatibility.

/samlValidate is not included in this PR. Probably will add this later.