Fix incorrect timestamp values when using fromString()

When using fromString() on DateTime objects that were in the global
timezone, an incorrect value would be returned.

Fixes #3743
Fix warning with FormHelper::inputs()

introspectModel() can return non-array data sometimes. Casting avoids
warnings when forms are generate for models with no or faulty schema()
methods.

Refs #3602