Correct inheritance, keep module cfgs in one place

Common module actions should be moved to ICM_BaseFeature constructor,
which is called in module constructor:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript#Inheritance
Rewrite ICM_BaseFeature and ICM_Config methods

Modules now don't keep a copy of their part of cfg (it caused some bugs
with configWindow), but access it by reference.
updateConfig() method keeps cfg clean of outdated settings and sets
defaults on-the-fly if needed.
Changed storage from dangerous eval to JSON.stringify/parse.
Remove evals, configWindow shows latest cfg

Also $(document).ready check in userscripts is not necessary:
http://wiki.greasespot.net/DOMContentLoaded
Tampermonkey's uneval is different from FF
Crash-safe eval replacement

The previous ver. worked fine, but in future could cause the script to
crash on arrays of objects.