Add a new findById DAO method.

We have found it very useful to have this simple function, which retrieves a
DAO object of a specific type by ID or throws an exception if one is not
found.

This can be called by using something like
CRM_Contribute_BAO_Contribution::findById(35), which will retrieve a
Contribution Object for that id, if it exists.
Add unit test for CRM_Core_DAO::findById().
Merge branch 'master' into findById
Fix foreign key error reported by the findById DAO test.

The root cause of the error was a problem with the CiviUnitTestCase
setUpBeforeClass and tearDown methods. The setUpBeforeClass method imports an
sql file that creates two domains and two contacts to associate with those
domains. The tearDown was set to truncate the civicrm_contact table and this
would happen after every test function run. So, if a test function that was
not the first test function in the class created a contact that it then
wanted to delete, the foreign key error would be thrown. Rather than doing
a workaround, I decided to fix the underlying issue and add back the two
domain contacts after the db tables are truncated.

This broke some tests that were depending on using contact ID 1 for the
contact record that was created, so I went ahead and fixed those, too.
Merge pull request #4553 from giant-rabbit/findById

Add a new findById DAO method.