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
Only redirect on logout if we're not already redirecting
Merge pull request #2162 from simonwelsh/sec-redirect

Only redirect on logout if we're not already redirecting
FIX ConfigManifest caching to not use existing cache from wrong $base
Fix CMSBatchActionHandler::$allowed_actions

Regression from earlier API change to deny actions unless specified
Flag "insert image" behat test as @assets

Required in order to run them remotely, which currently
doesn't support file upload through Selenium
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")
BUG Fixed missing allowed_actions on UploadField_SelectHandler