Fix Arr::get for ArrayObject on HHVM - fixes HTTP_Header behaviour

HHVM 3.2.0 may emit a PHP Notice (Undefined Index) when calling
isset on an ArrayObject that maps the keys in some way - for example
the HTTP_Header object which converts all keys to lowercase - see
https://github.com/facebook/hhvm/issues/3437

Implemented a workaround in Arr::get to resolve breaking tests for
Kohana_Request_Client on HHVM.
Ensure Date::formatted_time always has expected timezone

Always re-assign the requested timezone in Date::formatted_time
- this will be a no-op if the timezone already matches, otherwise
 it will convert the time as required.

 It is not currently safe to make this a conditional call based on
 comparing the existing timezone name, because of
 facebook/hhvm#2302.