Adding check for Behat KernelDictionary trait recursively through other traits.

This updates the initializer to check to see if the KernelDictionary trait is "extended" from another trait. This is useful when writing your own custom testing traits that use Behat's KernelDictionary trait. For instance:

```php
<?php

namespace Acme\Bundle\TestBundle\Traits;

trait AcmeContextDictionary
{
    use \Behat\Symfony2Extension\Context\KernelDictionary;

    // Include functions here that many of your contexts require. Useful for
    // common functionality across many contexts that require the container,
    // like using the security context, need something from the kernel, i.e.

    protected function getDocumentManager()
    {
        return $this->getContainer()->get('doctrine_mongodb.odm.document_manager');
    }
}

class YourAwesomeContext
{
    use \Acme\Bundle\TestBundle\Traits\AcmeContextDictionary;

    public function iWantToFindSomethingAwesome() {
        $this->getDocumentManger()
            ->getRepository('AcmeTestBundle:Thing')
            ->findOneByAwesomeness(...);
    }
}
```

In it's current state, the kernel is never set on traits that extend it. Thoughts?