I wanted implicit mock to have start_link semantic. But it is possible that start will fail due to `undefined_module` (when the respective module is not available on the code path), in that cases I wanted to throw error `not_mocked`, as it did before, to do that I started process without linking to survive possible process startup failure and converted  `undefined_module` to `not_mocked` if it happened.

But may be it is better to just do `start_link` and fail with `module_undefined` if a user tries to create implicit mock of a module that is not available on the code path.