First version of a solution that tries to tackle releasing GVL for I/O operations.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>
Change how Magic#version_string works etc.

Plus some changes to the API and code clean-up.

Signed-off-by: Krzysztof Wilczynski <krzysztof.wilczynski@linux.com>