Add (string) case in encodeSecureCookie call to hash_hmac

Per http://php.net/manual/en/function.hash-hmac.php, the second argument to hash_hmac is supposed to be a string. HHVM (http://www.hhvm.com) is more strict about checking the arguments.
Merge branch 'release-2.4.0'
Bump version number
Adds boolean $caseSensitive property

Routes can now be case insensitive if $caseSensitive is set to `false`
Adds `routes.case_sensitive` config setting

True by default, routes become case-insensitive when set to false.
Try running unit tests on HHVM
Set default timezone for unit tests
Add default return value for request data

Allow overloading of the default return value of NULL when
requesting request data.

Example:
  http://host/action?foo=bar&abc=123

  $app->request->get('foo')        -- [bar]
  $app->request->get('bar')        -- [NULL]
  $app->request->get('bar', false) -- [FALSE]
Controller as \class::method
[] -> array()
.travis.yml - add PHP 5.5
Add property typehints for proper IDE support.
Fix ordering
Don't rely on system setting for error_reporting level
add 418 HTTP status code

See RFC 2324
https://tools.ietf.org/html/rfc2324
Remove redundant call to setTemplatesDirector method.
Pass through 'templates.path' to view object singleton.
Allow local data to be passed into a template during rendering.
Remove mcrypt dependency
fix [] -> array()
change separator "::" -> ":"