This is a much nicer way to load extensions.

Also, use a NullPathItem when a path item cannot be loaded.
Merge branch 'forwarding_resources'