Allowed strings to be provided as the seed, and also allowed multiple seed arguments

This could be useful when testing: the test name can be provided as the seed to
ensure the same results every time. Also, a "master key" could be provided as the
first argument, and the test name as a second, to allow results to be variable (by
changing the master) but repeatable. E.g. in Mocha:

````js
beforeEach(function () {
    chance = new Chance(masterKey, this.currentTest.title);
    ...
});
````

This change made a significant refactor of the constructor function necessary to
maintain clarity, so it looks a fair bit different, but still passes all the tests.
Typo
Merge pull request #94 from nathanmacinnes/seed-argument

Allowed strings to be provided as the seed, and also allowed multiple seed arguments