Add singleton annotation on DAO Impls and re-use class injection

The class injection is needed in couple of places but they were
different requiring different injection which was unrealistic to have
so made them coherent so that single injection can be used.

The DAO Implementations are not required to be non-singleton
hence instead of marking it singleton in each case directly mark
them @Singleton at class definition.

Signed-off-by: Imran M Yousuf <imyousuf@smitsol.com>
Issue #SMARTCMS-50 - Allow In-Memory transaction capabilities for Smart CMS DTOs
Implement transaction related injection code generation

Also use it in the demo module so that the creation of DAOs
goes through test in the demo's test phase.

Signed-off-by: Imran M Yousuf <imyousuf@smitsol.com>
Issue #SMARTCMS-50 - Allow In-Memory transaction capabilities for Smart CMS DTOs