Import first working code of TaggerAPI

This version allows to add tags and retrieve tags for packages already in the database.
Add a .gitignore file
Add the __requires__ line to make it work on EL6
Update the database schema

- Add the rating table
- Remove the TagLabel table but transforming the taglabel_id in the
tag table into the tag label itself (Integer > Unicode(255)).
- Start thinking about alembic and thus add the logic to create the
alembic table when creating the database
- Rework a little bit the __json__ functions
Update the logic to associate a tag to a package with the new model
Make use of the __json__ function and rollback when there is an SA error
Update API documentation
Reorder __table_args__ and create the method get_or_create for FASUser

The method get_or_create is used when adding a rating, tag or vote for
a user.
Add add_rating method and logic
Add validator to make sure the rating submitted is a percentage
Implement the rating management, get/post
Update the API documentation
Expand the model API

- Add the get_or_create method for Tag (used when adding a tag, so that
adding an existing tag is the same thing as voting you like the tag)
- Add get function for Vote and for Tag
Add form to vote on a tag with the appropriate validator
Add logic to vote on the tag of a package and consider adding an exising tag as a vote
Add API to vote on the tag of a package and record votes when adding a tag
Adjust the return message to reflect if the vote was added or changed
Update API documentation
Add one function to retrieve all known information about a package
Use PUT requests when adding something to the database