Ensure cursors are closed when no longer needed.

This cleaned up the low hanging fruit, but doesn't touch the more
complicated, long living cursors that are passed around the ORM.
CursorMock needs to behave like a contextmanager.
Ensure cursors opened in migrate management command are explicitly closed
Ensure RawQuerySet closes the cursor opened on the RawQuery.
SQLCompilers should close any cursors that they open.

Updated SQLUpdateCompiler.execute_sql to match the behavior described in
the docstring; the 'first non-empty query' will now include all queries,
not just the main and first related update.
Made SQLCompiler.exceute_sql(result_type) more explicit.

Added CURSOR and NO_RESULTS result_type constants to make the usages more
self documenting and allow execute_sql to explicitly close the cursor when
it is no longer needed.
Explicitly close _savepoint related cursors