Blacklist certain classes from loading in slaves

Details

Description

Classes from servlet container (such as HttpServletRequest) are not guaranteed to be remotable. For example, it could be because the container classloader hides the class file from RemoteClassLoader. Or it could be that the servlet container uses a newer versions of JDK than the slave JVM.

Therefore, instead of letting these classes transferred to slave JVM, we should come up with a blacklist that causes the master to immediately refuse to send the class file image.

That way, the tests we run can catch the problem, instead of leaving it up to a small number of unlucky users to discover them.

This is expected to improve the "I got NoClassDefFoundError: class Xyz failed to load but I don't know why it failed to load" problem, which is hard to diagnose because the exception is missing the root cause.