Changing `ExceptionMessages` from resource to

overrideable class with static `Current` access point.
Removing all custom message overloads
A null is a null is a null

Changed all instances of ArgumentNullException to use the same message.
Added test for custom messages