Add project states & enforce policy

Projects now have 3 states = [draft, public, closed]

Draft projects may only be viewed by their owners
Public/Closed projects may be viewed by anyone

You can query for a specific type of project by using:
/project/findAll?state=:state

Draft projects by the user will always be returned
and should be filtered by the front end if they're not
needed for the view.

Policy enforces this, but there's a bug in sails where
policies aren't correctly enforced on controller functions.
Merge branch 'sprint3' into sprint4
Merge branch 'sprint4' of github.com:Innovation-Toolkit/midas into sprint4
Set up API (backend) test framework.

Tests for the backend are now in test/api.  They are run by mocha and
the npm test (or make test) command.

This is a work in progress, and there's still a few issues
(like sailsjs spawns grunt, and for some reason the grunt process
doesn't die when sailsjs dies)
Fill out user tests

Kill the ./.tmp directory on test load, so the database starts
from scratch.

Add tests for user login and logout, and invalid password.
Make kill() async

Fix a bug where app.kill() wasn't called.

Make kill() and async function so we can wait for the child process
to complete if necessary.