Finish splitting pure from blocking code

Note the .mli has been temporarily removed.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>