Pr/error static page pubdir

In D2::C::Error.pm instead of using '$app->config_location/public' use the public_dir specified in app->config->{public_dir}. $app->config_location/public may not exists if the user decided to set the public dir somewhere else.

+t/error_template.t
Change Plack::Test to OOP style

change test app setup from $ENV based and engine-local settings to
standard setting via 'set views' and 'set public_dir'

Separate the test app into two apps, one which has it's own custom error
templates defined and one which has not.