BUG GridState_Data doesn't hold falsey values - Fixes #2813

Original test case left unsquashed for verbosity of history.

I have removed a portion of the test case dealing with array values; The convention within GridState_Data is that any array values are converted to a nested GridState_Data on retrieval; To change this would break backwards compatibility.

Hopefully resolves the issue noted by @dhensby at https://github.com/silverstripe/silverstripe-framework/pull/2813