Modify tag parsing to split multiword tags properly

Multiword tags are split to create additional single-word tags. These
single-word tags are only saved in the database - they are not returned
to the user and do not affect their score.

When tags are submitted from a game, they are expected to either be an
array of tags, or a string separated by commas or double quotes (").
The two symbols are treated equivalently, so matching quotes is not
necessary.

Known issues:
 - GuessWhat does not have client-side character filtering, making it
   possible to give multiword hints. This bug is more evident with the
   changes to tag parsing. It should be easily solvable using a list
   of forbidden characters like ZenTag or StupidRobot.