Add a User model and views.

We're using scrypt to hash user passwords in production, but since
this is a bit hard to compile on windows and there's no pre-built
package available, we also provide a small shim that just uses a
single iteration of sha256. This will be unavailable in production.

This includes a lot of other modules as well, to work with users,
permissions and authentication.

marvin.utils
	Collection of stuff that doesn't nicely fit in any other
	module, like some authentication stuff and before_request
	handlers. Some more things might be moved into this module
	from marvin\__init__.py once I get to clean up a bit.

marvin.permissions
	Permissions for stuff. For now only a UserNeed is added,
	so that views can be restricted on a per-user basis.
	More stuff that can be added here later is ownership of
	streams, collaborator status, and the likes.
Add force_bytes to ensure bytes.

Extracted out salt generation to its own function that uses this function.
Add grunt cli flag '--dontstop' to not stop test runs.

Make travis use this flag so that we'll see everything that fails.
Use force_bytes in is_correct_pw.

Fixes a py3 issue.
Remove python 3 from test matrix

Too much pain for now. billiard builds are broken for now, it's hell to
develop with on windows, builds incredibly slowly on travis and thus
increases feedback time by a lot, and is not strictly needed anytime soon
anyway.
Merge pull request #12 from streamr/userauth

Add a user model and generate auth_tokens