remove debug printf

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add TODOs

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
factory code is now consistent

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
move validating type outside of type class

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
move validation of setter_method outside of class

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
move validation of default_constructor_method outside of class

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add validate method for dependency

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
move validation of dependencies to later stage

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
improve exception handling a bit

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add validate to factory_method

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add validate method to implementation class

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add validate to implemented_by class

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add validate to resolved_dependency

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add validate to provider_ready

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add validate to provider_by_factory

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add validate to provider_by_default_constructor

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add check for duplicates in injector constructor

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
throw exception if instance of type was not created

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add type_dependencies and types_dependencies

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
cache dependencies in injector_impl

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>