MINOR: fix Email class modifying SSViewer.source_file_comments config val

The Email class was updating the SSViewer.source_file_comments value and not
resetting it. If someone had this value set to true in their system and then
used the Email class, it seems there would be an unintended side-effect of
having the source file comments turned off.
FIX: ViewableData::obj() would sometimes return an empty object

For instance, this happens when these criteria are met:
  1) No casting has been specified for a method in $casting.
  2) A template accesses the field without any casting
  3) Any casts by the template will now yield an empty object.

After a brief look at the commit history, it can seem like this bug is several years old, unless it is a side-effect of other changes in the code.

== Steps to reproduce ==
Add two methods to be accessed by a template. Make sure you do not define an entry in $casting for them:
	public function Testus() {
		return "Te<x>t1";
	}

	public function Testus2() {
		return "Te<x>t2";
	}

Add this to a template:
	<p>
		First access:<br />
		"$Testus" : "$Testus.XML"<br />
		"$Testus2.XML" : "$Testus2"<br />
	</p>
	<p>
		Second access:<br />
		"$Testus" : "$Testus.XML"<br />
		"$Testus2.XML" : "$Testus2"<br />
	</p>

Open the page in a browser, and you will get:
 First access:
"Tet1" : ""
"Te<x>t2" : "Tet2"

Second access:
"Tet1" : ""
"" : "Tet2"

We see that any cast can yield an empty string.
Unit test for bugfix in ViewableData::obj().
TEST: additional test for ViewableData not wrapping cached strings
Docs: Note about branch merging
FIX ConfigManifest caching to not use existing cache from wrong $base
BUG Fixed issue where time value was being parsed incorrectly in some locales
FIX Only and Except rules in Configs not working
FIX changing environment in config.php changes matched yaml rules
Clarify how Only and Except rules combine
Add configuration system tests for Only and Except combinations.
Merge branch 'pr/2173' into 3.1
Merge pull request #2137 from jthomerson/pulls/fix_viewable_data_wrapped_value

FIX: ViewableData wasn't setting values when using default cast
FIX #2174: SearchFilter needs casting helper for DataObject base fields

Commit 964b3f2 fixed an issue where dbObject was returning casting helpers for
fields that were not actually DB objects, but had something in $casting config.

However, because dbObject was no longer calling DataObject->castingHelper, this
exposed a bug that the underlying function db($fieldName) was not returning
field specs for the base fields that are created by SS automatically on all
DataObjects (i.e. Created, LastEdited, etc).

This commit fixes the underlying issue that DataObject->db($fieldName) should
return the field specs for *all* DB fields like its documentation says it will,
including those base fields that are automatically created and do not appear in
$db.
Merge pull request #2175 from jthomerson/fix_2174

FIX #2174: SearchFilter needs casting helper for DataObject base fields
Fixed HTMLEditorField extension call ("updateFieldsForOembed")
FIX HtmlEditorField not re-checking sanitisation server side
BUG Fixed missing allowed_actions on UploadField_SelectHandler
Fixed broken github issue tracker link
Postgres compat in SQLQueryTest