Lazy-initialize class in \Slim\Route::setCallable()

You don't want to construct all kinds of objects when setting up your routes, so don't initialize those objects until
the route is actually dispatched. Add some basic caching so multiple route dispatches don't result in multiple class
instantiations.
Fix RouteTest::testGetCallableAsClass() test
Route: fix arguments not being forwarded to wrapped callable
RouteTest: also test whether invoked callable received correct params
Add require-dev: phpunit (with proper .gitignores)
Fixed spelling mistake in get() DocBlock
switch requirement to pimple 2
pimple 2 now sees anon. functions as service definitions
Why do Collections extend Pimple?, reverted to previous definition.
Implemented ArrayAccess and fix tests.
Add missing semicolon to namespace declaration
Merge pull request #775 from andrewmman/dev/pimple2

As suggested switch to pimple 2, closes #762. I believe the Collection class was updated to extend Pimple to inherit code common between the two to reduce duplicate code. Semantically I realize that's not ideal. It's a good scenario for traits, to be honest, but even traits are a no-go seeing as we are pulling in Pimple via Composer.
Merge pull request #769 from jamesmcfadden/missing-semicolon

Add missing semicolon to namespace declaration
Remove obsolete code from \Slim\App::subRequest, fixes #754
Merge branch 'develop' of github.com:codeguy/Slim into develop
Merge pull request #749 from scottwakefield/patch-1

Update Request.php
Clarify apache setup

Adds in a hint for the Apache AllowOverride setup to permit the .htaccess rules to rewrite incoming requests
Merge branch 'develop' of github.com:codeguy/Slim into develop
Separate individual stack trace lines with div elements
Duplicate changes made in 25802a17275c13927caef21a6d46d0db4639fa66. See #774.
Allow all valid characters in function names of getCallableAsClass

This uses the [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* regex as specified by https://php.net/manual/en/functions.user-defined.php