Fixes bug where DependencyInjector sometimes cannot find Layers or Modules

If a Layer or Module resides in a subdirectory of $base_dir/{Layers,Modules} DependencyInjector
looks for a class named <subdir>/<classname> insteadof just <classname>.
Adds support for rendering layers directly in Views.

Views now treat Layers as associative arrays, and gather any public properties
that exist in a given layer.