Avoid 'Undefined offset' error in is_hash(). If empty array, return false.

...e.
Wouldn't it make more sense to check if the actual key isset, since we actually try to access that key?
Then we can get rid of the [horribly slow `@` error suppressor][php-error-suppressor-performance] and the awkward ternary:

```php
function is_hash($array)
{
    if (!is_array($array)) {
        return false;
    }

    $keys = array_keys($array);

    return isset($keys[0]) && is_string($keys[0]);
}
```

[php-error-suppressor-performance]: http://seanmonstar.com/post/909029460/php-error-suppression-performance