Separate stages for [re]loading and rerunning specs

Previously, even if spec [re]loading has failed because of the, for example,
compile errors in the source code, already loaded spec was rerun. This
rerun could not turn compile failure into success, but was nethertheless
confusing for the users.

After this change, guard-haskell firstly tries to reload the spec and
only if that succeeds, it reruns the examples