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
Cast hash_hmac data to string in \Slim\Crypt
Manually migrate Jeremy Kendall's case-insensitive route matching into develop branch
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
Remove obsolete code from \Slim\App::subRequest, fixes #754
Clarify apache setup

Adds in a hint for the Apache AllowOverride setup to permit the .htaccess rules to rewrite incoming requests
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
Resolve conflicts in RouteTest
Merge branch 'develop' of github.com:codeguy/Slim into develop

Conflicts:
	Slim/Route.php