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.
allow passing array of methods to Slim\Route::via() and Slim\Route::appendHttpMethods()
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