Decouple architecture with the use of threads
Minor refactoring
Improve logging
Use "threading.Event" instead of a "Queue.Queue"
Wait for tag loading to complete
Move function for setting tag files
Simplify tag file loading procedure
Switch to daemon threads
Be sure cleanup is performed when Surfer is closed
Catch exceptions that arise from "vim.eval(..)" and "vim.command(..)"
Minor refactoring
Improve filters management
Speed things up
Return a list instead of an iterator
Remove unused modules
Remove unused function
Minor refactoring
Improve general efficiency (move tag filtering to the background)
Don't call vim functions or access vim options within threads
Use unicode string literals