replaced ArgumentOutOfRange with InvalidOptionNameException with meaningful error messages. This is because of the breaking change added which may cause problems when upgrading. The error messages should go some distance to help resolve any issues.
updated test filename to reflect the sut
updated message
fixed tests
updated to include exceptions thrown after changes
added back the Setup<T>(string, string) method to ease the crossover - made it obsolete and thrown some tests to ensure it behaves the same