move exception to own class, own file and own namespace

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
move exception code to cpp file

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

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add make_type function that does not validate

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

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
add few new exception types

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

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
use new exceptions in module::add_ready_object

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

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
create provider_ready in module not in module_impl

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
validate implementaton object created by provider

Signed-off-by: Rafał Malinowski <rafal.przemyslaw.malinowski@gmail.com>
provider_ready does not need validation anymore

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