Fix getMockForModel() using the incorrect datasource.

Because getMockForModel() does not go through the test datasource
injection in ClassRegistry::init() we need to duplicate the basics of
that logic here. Thankfully, we already have a mock so we can do that
datasource switching without reflection. Of course this means there will
be limitations to how/when this will work, but I feel those scenarios
can probably be solved by not using mocks, or by mocking out the
problematic methods. This set of changes makes getMockForModel() work
with secondary datasources, as one would expect it to do, but I'm not
sure it ever did.

Refs #4694
Add BC test for #4851
Possible fix for isUnique backward compatibility
Merge pull request #4871 from rchavik/2.5-is-unique-test

2.5 Add isUnique test + possible fix
Make rule sniff less complicated and tidy up doc block.

Refs #4871
Fix PHPCS and PHP5.3 error.
Merge pull request #4867 from cakephp/issue-4694

Fix getMockForModel() using the incorrect datasource.
Fix Memcached test failures.

The Memcached extension does not provide enough information to PHP's
Reflection API to allow mock objects to be generated correctly. We'll
skip the affected tests until php-memcached-dev/php-memcached#126 has
been resolved.
Merge pull request #4891 from cakephp/fix-memcached-failures

Fix Memcached test failures.
Handle query string arguments in digest auth data.

Handle &, ? in digest auth data uri.

Refs #4908