Fix some servlet spec compatibility issues
Don't allow listeners that are added programatically to modify the deployment
Add session listener to listener types list
Throw correct exception
Throw IllegalArgumentException if not a listener class
Handle error conditions correctly when adding servlets, filters and listeners