Removing the need for EmptyConstructorException

Within __construct, I've removed the null defaults allowing a regular exception to be thrown if not provided.
This makes it more explicit that the values are required in order to construct the class.

I've left the test in place and updated it to catch PHPUnit_Framework_Error_Warning which will be thrown when the suite runs.

Just a quick refactor really, functionality the same.