This fixes following error while downloading auto email report
```
Traceback (most recent call last):
File "/Users/sps/benches/develop/apps/frappe/frappe/app.py", line 66, in application
response = frappe.api.handle()
File "/Users/sps/benches/develop/apps/frappe/frappe/api.py", line 54, in handle
return frappe.handler.handle()
File "/Users/sps/benches/develop/apps/frappe/frappe/handler.py", line 31, in handle
data = execute_cmd(cmd)
File "/Users/sps/benches/develop/apps/frappe/frappe/handler.py", line 67, in execute_cmd
return frappe.call(method, **frappe.form_dict)
File "/Users/sps/benches/develop/apps/frappe/frappe/__init__.py", line 1205, in call
return fn(*args, **newargs)
File "/Users/sps/benches/develop/apps/frappe/frappe/email/doctype/auto_email_report/auto_email_report.py", line 196, in download
data = auto_email_report.get_report_content()
File "/Users/sps/benches/develop/apps/frappe/frappe/email/doctype/auto_email_report/auto_email_report.py", line 98, in get_report_content
columns, data = make_links(columns, data)
File "/Users/sps/benches/develop/apps/frappe/frappe/email/doctype/auto_email_report/auto_email_report.py", line 253, in make_links
doc = frappe.get_doc(col.parent, doc_name) if doc_name else None
File "/Users/sps/benches/develop/apps/frappe/frappe/__init__.py", line 883, in get_doc
doc = frappe.model.document.get_doc(*args, **kwargs)
File "/Users/sps/benches/develop/apps/frappe/frappe/model/document.py", line 62, in get_doc
raise ValueError('First non keyword argument must be a string or dict')
ValueError: First non keyword argument must be a string or dict
```
The issue was introduced via https://github.com/frappe/frappe/pull/13340
Since the character to render NC was cut off due to the char limit, the
whole list of following commands and descriptions would also turn
yellow. Let's keep it colourless in --help. Only, make it yellow when
the command is executed directly.
When exitting console, rollback and destroy the Frappe connection. This
rollback is added so that rollback_observers are executed in case
methods are run in the console which shouldn't be committed.
For instance, running File.optimize will make changes to the file on
disk but may not update the corresponding data in the DB.
Previous order was:
1. Delete DocTypes
2. Delete linked records
3. Drop tables
Now if linked records belonged to deleted doctypes it causes
uninstallation failure.
Changed order to:
1. Delete linked records
2. Delete DocTypes
3. Drop tables
Remove_app assumed that all link fileds linking to "Module Def" are
called "module", this causes uninstall failure and leaves bench in
pseudo-irrecoverable state. (requiring some manual cleanup)