Update the foreign key generation

Now uses the `getForeignKey` method on the related model. This is useful when subclassing Eloquent and overriding key names while working with non-standard column names.

For example, if you have a BaseModel such as…

```php
<?php

class BaseModel extends Eloquent {

  /**
   * Get the default foreign key name for the model.
   *
   * @return string
   */
  public function getForeignKey()
  {
    return lcfirst(class_basename($this)).'Id';
  }

}
```

With this subclass you can then use key names such as `authorId` or `userId` without needing to pass the foreign keys on every relationship declaration.