Refactored code to allow more flexibility in parsing the results from CAS

Refactored code to allow more flexibility in parsing the results from CAS before handing off control back to Shib. The architecture should allow plugging in code if you want more details from CAS to go back to SHIB

Fixed a bug that made it possible to get multiple EntityIdParamaterBuilders (thus multiple copies of the parameter in the request)