Allow both unicode and str in @grammar checks under Python2

Allowing only `str` can cause validation errors in programs that decode
everything to `unicode` as soon as possible OR have unicode_literals
__future__ turned on.

Since most (all?) of the values checked against `str` end up in JSON
lists/dictionaries anyway, it's seems unreasonable to reject them in
Python.

All tests pass under py27, py32 & py33


I'm only starting with vincent, if I botched something up just let me know, I'll try to fix it :)