Add user tests, cleans up some tests, and uses cancan more appropriately