Normalize metadata in the Doctrine database adapter to support nested arrays

This PR introduces (de)normalizing of metadata within the Doctrine database adapter to support nested arrays.

```php
array(
    'foo' => array(
        'bar' => 'value'
    ),
);
```

becomes:

```php
array(
    'foo::bar' => 'value',
);
```

more examples in the tests added to this PR.

This fix should be invisible to end users as Imbo will de-normalize the data on output, reversing the flattening of the array. Because of this Imbo will throw an error when clients try to add metadata where the keys contain the namespace used for the normalizing process (`::`). This error can only occur when Imbo is configured to use the Doctrine adapter.