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