libview: fixing memory leak

The memory leak was caused by a g_signal_connect
which was never disconnected. This patch makes
sure the signal is disconnected and the job is
cancelled before creating another rendering job.
It additionally introduces a helper function to
cleanly finalize the job.