Make identifier name configurable for AbstractRestfulController

Currently, `AbstractRestfulController::getIdentifier()` hard codes a lookup on an `id` parameter in either the route matches or the query string. This is not optimal in the case of child resources, as it forces the creation of additional routes to ensure that the `:id` segment is specific to the given child resource:

```php
'parent' => array(
    'type' => 'Segment',
    'options' => array(
        'route' => '/api/parent[/:id]',
    ),
),
'child' => array(
    'type' => 'Segment',
    'options' => array(
        'route' => '/api/parent/:parent/child[/:id]',
    ),
),
```

versus the more semantic:

```php
'parent' => array(
    'type' => 'Segment',
    'options' => array(
        'route' => '/api/parent[/:parent]',
    ),
    'may_terminate' => true,
    'child_routes' => array(
        'child' => array(
            'type' => 'Segment',
            'options' => array(
                'route' => '/child[/:child]',
            ),
        ),
    ),
),
```

This PR makes the identifier name configurable. BC is retained, as it still defaults to "id"; however, new methods allow you to inject an alternate identifier name, and that name will be used by `getIdentifier()` in order to look up the resource ID.