add pseudoclasses to validation, change arrayorobject and objectorarray to genericobject

Add unit testing (built on the all.js framework, which was written specifically for simple cases like this). Add unit test for Int checking
Add missing support for function validation