make projectDao methods asynchronous
remove projectDao.exists
a project name is invalid if its slug would be invalid
projectDao.write takes a callback
fix-up jshint wrapper script
support storing project information in redis
use Q to handle sequential callbacks
support storing issues in redis

more error-handling is needed
apparently done() has replaced end()
Merge branch 'redis'. Nice work, Neil.