Use transaction in setup script. Use better getRandomString for salt.
Merge pull request #23 from colinmollenhour/improvement

Use transaction in setup script. Use better getRandomString for salt.