Add devise as an authentication system

@kenyonj @georgetmayorga @liantics
I think you're right, but I'm very unfamiliar with devise so I want to keep comments as reference for now. They will be gone by deployment.