Create assert_that function and use it from TestCase.assertThat.

This will allow matchers to be used outside of the TestCase context.
This is useful for people who can't buy in to testtools.TestCase fully
(for whatever reason), or who like using function tests (as supported by
nose).
Move assertThat tests to separate module and apply them to assert_that as well.
Add assert_that function documentation.
Copy assertThat docstring on to assert_that.
Add assert_that NEWS entry.
update branch to comply with review
Merge remote-tracking branch 'upstream/master'

Conflicts:
	NEWS
	doc/for-test-authors.rst
	testtools/tests/test_testcase.py
fix merge conflicts