Modified __isset() to handle `false` attribute values

When checking `isset()` on an EAV attribute, if the value of the attribute was false then `isset()` would return false. I don't think this the correct outcome.

```php

// An example
// assuming that $product is an orm model with an 'attributes' relation for EAV data
$product->attributes[] = \Model_Attribute::forge(array('key' => 'any_key', 'value' => false));
$product->save();

isset($product->any_key); // would return false, should return true

```

Previously if you wanted to check whether a attribute key was set you couldn't. I've made some changes to alleviate this, if an attribute key exists then `isset()` should return true, otherwise false.