Make smtp tests more robust

Current implementation does not support running more than one test
sequentially in the same test runner.  Move message storage to the
test object and create a factory method for FakeSMTP that links
the FakeSMTP object to the message storage.

Also, make the timeout non-gentle.  Gentle didn't seem to work.

Change-Id: I1eae42ceac4deb6eb30affd1d84f3e79c97ca2f4
Merge "Make smtp tests more robust"