fix object field allocation

- object fields allocated and initialized explicitly during constructor invocation
- fix lazy fields initialized in constructor
add object tests

- add self type test
- add self type with multiple injections test
- add class closure test
- add class inside module test
- add class inside function test
- add ctor default parameters test
- add empty class test
- add lazy field tests