Refactor Token Resource

The Authentication resource was really a token resource and was big and messy.  Refactored the name and extracted the buisness logic for the tokens to a service.
i generally make methods that require no state and are just data in data out as static but after thinking about it I don't think i have any great reasoning as to why. I know the compiler can sometimes optimize static methods more but I doubt it has any big effect on performance. It probably doesn't need to be static but it could be.