Use newInstanceWithoutConstructor when possible

Comment says

// We have to use this dirty trick instead of ReflectionClass::newInstanceWithoutConstructor()
// because of https://github.com/sebastianbergmann/phpunit-mock-objects/issues/154

As I see the only reason to use unserialize here is internal classes (or not?). So how about using unserialize for internal classes and newInstanceWithoutConstructor for other?
newInstanceWithoutConstructor only for 5.4+
Added testcase for mocking singleton with newInstanceWithoutConstructor when possible
Added testcase for checking that mocking singleton fails with PHP 5.3
Added testcase for checking that mocking singleton fails with PHP 5.3 (warning is triggered)
Merge pull request #165 from ksimka/patch-1

Use newInstanceWithoutConstructor when possible