Finish IOCFactory

Finnally Finished IOCFactory.
Stopped by Reflect.New() always return a new object which point to nil..
Finds out because i used reflect.TypeOf instead of
reflect.TypeOf().Elem()
to create struct.
PS:
IOCFactory support decorate and singleton and normal pattern