Fixed reges in tag parsing

ctags generates each tag in the following format:
tag_name<TAB>file_name<TAB>ex_cmd;"<TAB>extension_fields

So by just splitting this line at the tab characters we can capture
every field in our regex. However, there is one caveat to be wary of:
The ex_cmd itself can contain tabs as well. This can happen if the
author of a file used tabs to indent instead of spaces. The previous
regex '[^\t]+\t' does not work in this case. '(?:(?!;\"\t).)*;\"\t'
includes everything up to ;" which is what we want.
Fixed bug with spaces in keywords

Because of the switch from syntax match to keyword we can now longer
have spaces in our tags. An example would be c++ operator overloads
which are written as 'operator <<' in the tags file. This would cause
two keywords to be generated. As there is no way of having spaces in
keywords we have to filter them out. This seems to be the most sensible
solution to me.