Fixing #28 : add category feature

"La troisième est la bonne" as we say :) 
So improves:
- organized the imports (maybe the source of the conflict for the last PR)
- updated adding categories to check if a category already exists in DB
- added a better support for return message (success or error)
Everything is okey, but I think it's a little bit confusing here. We are passing an `action` and a `message` which is used for different cases according to `status` value. I think we can optimize it, but not now.