Since __*ArrayList*__ isn't safe like __*Vector*__, I'm also adding `synchronized ()` at places where either of its structure's **size()** changes.
Those 6 methods are: **add()**, **addDrawable()**, **remove()**, **removeDrawable()**, **clear()** and **clearDrawable()**.
Of course, all loops traversing this class still needs to be synchronized externally as well; either over **get()** or **getDrawables()**.
Last word: This patch is just a standalone performant refactoring. It's not obligatory for __*ControllerGroup*__'s previous patch.
* I wasn't expecting almost 1000 lines of code, but I've taken the challenge anyways.
* Placed localized `synchronized ()` not only for those 2 _**Vector**_ containers from _controllers_ field, but also for the 2 __*ArrayList*__ in __*ControllerGroup*__ class.
* Mostly for all sections doing iteration on them, but also when their **size()** changes.
* Prepended `@Override` for all inherited methods in __*ControllerGroup*__ class.
* Prepended `final` for all fields which didn't seem they would be re-assigned.
* Lotsa further cleanups I can't remember I did. :P