Allow types to have custom prefixes.

This allows us to customize where each type is looked up.

For example if I have the following types:

* human
* dog
* cat
* couch

And I wanted them to resolve like:

* human named 'Rob' - 'humans/rob'
* dog named 'Lucy' - 'pets/dogs/lucy'
* cat named 'Kisses' - 'pets/cats/kisses'
* couch named 'Ethel' - 'furniture/couches/ethel'
* EVERYTHING else under 'app/'

I could do the following:

```javascript
Resolver.create({
  namespace: {
    modulePrefix: 'app',
    dogPrefix: 'pets',
    humanPrefix: 'humans',
    catPrefix: 'pets'
    couchPrefix: 'furniture'
  }
});
```

(Please note all names are real, no making fun...)
Enable POD lookup structure.

When given an item to lookup (say `resolve('controller:foo')`), the POD
structure would dictate that you would actually be looking up a module
at `podPrefix/foo/controller`. This format is given the first (and
primary) shot at finding a module.

For example, given a `podModulePrefix` of `app/pods` you would have the
following:

```
* `route:posts`            -> `app/pods/posts/route`
* `template:posts`         -> `app/pods/posts/template`
* `controller:posts`       -> `app/pods/posts/controller`
* `route:posts/index`      -> `app/pods/posts/index/route`
* `template:posts/index`   -> `app/pods/posts/index/template`
* `controller:posts/index` -> `app/pods/posts/index/controller`
* `route:posts/edit`       -> `app/pods/post/edit/route`
* `template:posts/edit`    -> `app/pods/post/edit/template`
* `controller:posts/edit`  -> `app/pods/post/edit/controller`
* `route:posts/show`       -> `app/pods/posts/show/route`
* `template:posts/show`    -> `app/pods/posts/show/template`
* `controller:posts/show`  -> `app/pods/posts/show/controller`
```
Merge pull request #16 from rjackson/add_custom_type_prefixes

Add POD structure and allow types to have custom prefixes.