Allow RuntimeDefinition to still process explicit classes

Prior to this commit, explicit classes passed to a Di RuntimeDefinition would not be processed as they already existed in the classes array. This behaviour doesn't match [the documentation](http://framework.zend.com/manual/2.2/en/modules/zend.di.definitions.html#runtimedefinition), which suggests that defining explicit classes provides functionality to apply different introspection strategies to different sets of classes. As we'd like the documented behaviour, I'm in favour of fixing the implementation rather than the documentation. Without the fix, defining explicitClasses seems to offer the same behaviour as an ArrayDefinition. This commit adds tests to demonstrate the problem and changes to implement the desired behaviour.

It also consolidates the check to see if a class has already been processed at the cost of adding a flag to processClass.