Added support for setting an arbitrary seed value for the
random number generator used by faker.  This permits using
faker to recreate exactly the same data on multiple runs
which is critical for testing.  The seed value can also be
reset during runs so that the same sequences can be created
repeatedly within the same run (usefully for running multiple
tests within the same run.

Added optional seed argument to __init__() for Fake class.

Added Fake.reset(seed) method to reset the seed.
Modified __init__ routine slightly to call self.seed(seed) so
that all random seeding is done in the same routine.