Throw exceptions when non Datasource classes are used as Datasources.

Using models as datasources can cause segmentation faults. Guard against
that by checking types and raising exceptions early.

Fixes #3694
Throw exceptions only when datasource has wrong package, not check for instance of Datasource
fix failing tests. test and mocked sources would cause exceptions
Merge pull request #1176 from ceeram/2.3-3694

Throw exceptions only when datasource has wrong package.

This is replaces instanceof checks with a more generalized check. 

Refs #3694
Force & when creating requests.

Some people will have entities in arg_seperator.output. Make HttpSocket
more resiliant.

Fixes #3692
Move tests around.

Try to fix timing issues in formhelper tests.
Merge branch 'master' into 2.4