Problem Types and Hiding Individual Errors

Hi there,

I've copied in some changes to support multiple problem types from a fork by ben8p. I improved upon his code so that it now identifies all 3 problem types (warning, info and error). I've also added support for setting a default annotation for all JS files so that you can disable a particular warning number (e.g. W078) through the project properties. Finally, I appended the error number to the error message before it's put in the Problems tab. Makes it easier to identify an error and disable it.

I haven't paid much attention to testing, so you might want to look it over. I basically added extra params where necessary to stop the tests complaining and used sensible defaults, but you might like to add more tests for the new params if you accept this :)