Config class

Creating the pull request so that I can comment some lines ;)
As far as I'm aware `$prefix` never changes type, it always remains as an `array` type. The for loop is a little bit weird, but it is fairly simple in function - recursively merge the contents of `$components` and `$this->prefixPaths`. `array_merge_recursive()` has some drawbacks that make it unsuitable for this usecase.

The final `\\` is the array key for the path itself. This is so that a path can have a general prefix and a more specific prefix, for example:

 * `Vendor\\*` can have a general resolution to `/3rdparty/*`
 * `Vendor\\Foo\\Bar\\*` can have a more specific resolution to `/util/foobar/*`

This would generate the following array:

    $this->prefixPaths = array(
      'Vendor' => array(
        '\\' => '3rdparty',
        'Foo' => array(
          'Bar' => array(
            '\\' => 'util/foobar'
          )
        )
      )
    )

Notice how the above wouldn't work if `'Vendor' => '3rdparty'` was an array element of `prefixPaths` instead of `'Vendor' => array('\\' => '3rdparty')`. `\\` was chosen simply because it can never appear as a prefix component.