Made SQLCompiler.exceute_sql(result_type) more explicit.

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.

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.
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.
Explicitly close _savepoint related cursors
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.