Arr::get overhaul

- Relax constraint to make it work with instanceof ArrayAccess
- using `isset` at the beginning for performance reasons
- Use `array_key_exists` because `isset` will return FALSE for
  values explicitly defined as NULL
- Remove *workaround* text as HHVM is compatible with PHP

Thanks @hkdobrev 

Related to #299, #301, #330
and yet there is extra `( )` wrapping around a ternary condition that doesn't need it? :-1: