In automated tests, move user creation to a proper factory method.

BP user creation requires that a couple of extra pieces of data be set up
(last activity, display name, etc). So we previously had a wrapper in
`BP_UnitTestCase` called `create_user()` that performed the extra setup.
However, the wrapper made it impossible to use `create_user()` statically,
because the user_login and user_email iterator was not persistent from call to
call. (The `create_user()` syntax is also a break with the rest of our unit
tests, which is not ideal.)

This changeset introduces `BP_UnitTest_Factory_For_User`, which reproduces the
customizations of `create_user()`, but in a proper factory method. All
instances of `create_user()` throughout the test suite have also been replaced.

See #6009.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9139 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Move automated test mail handlers to `setUpBeforeClass()`.

In many cases, creating data in BuddyPress (such as friendships) will generate
an email notification. In order to avoid errors when generating fixtures, our
automated suite places some filters on 'wp_mail'. However, these filters were
previously added during `setUp()`, which is too late for test classes that
create fixtures during `setUpBeforeClass()`.

See #6009.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9140 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Make `BP_UnitTestCase::set_current_user()` a static method.

This allows it to be called from outside of an object context.

See #6009.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9141 cdf35c40-ae34-48e0-9cc9-0c9da1808c22
Share fixtures across Suggestions tests.

This improves the running time of our automated test suite by almost a minute.

See #6009.

git-svn-id: https://buddypress.svn.wordpress.org/trunk@9142 cdf35c40-ae34-48e0-9cc9-0c9da1808c22