API: Use an interface for defining request filters.

Request processors must now implement the PreRequestFilter or
PostRequestFilter interface.
Move coupled request output logic into request post processors.
API: Include the extension in request URLs.

 This fixes the issue where requests with different extensions would resolve
 to the same resource.
Reworked HTTP response redirection detection.

* Any 3xx status code is now recognised as a redirect.
* Added an isRedirect() method to check if a status is a redirect.
Remove unused director url params related code.
Extract common request/response functionality into a base class.

* Both the request and response classes inherit from the base message class.
* Setters consistently return object instances.
API: Consistently name HTTP header methods.

* SS_HttpMessage->addHeader() has been renamed to setHeader().
* SS_HttpMessage->removeHeader() has been renamed to unsetHeader().
API: Made HTTP request method names more consistent.

* Renamed SS_HTTPRequest::httpMethod() to getMethod().
* Properly case method names.
API: Make request constructor args optional and remove null request.
Add PSR-0 autoload definition to composer.json.
API: Change Director::test() to accept request objects.

Rather than accepting an argument for each request variable, a request
object is used to provide these details. For simple cases a URL can
still be used.

This means that GET variables can no longer be included in the URL, but
must be included in the request object.
API: Don't include $_FILES vars in request vars.

This better emulates the behaviour of the standard PHP request
array. Also added methods to allow accessing files data.
Add support for legacy class loading.
Always include the composer autoloader.
API: Extracted routing functionality into a router class.
API: Consistently named http request methods.
API: Move SS_HTTPRequest::send_file() into the HTTP class.
API: Change the way requests are constructed, and include server vars.

* Environment variables (get, post, files and server vars) are now
  passed in as an associative array to the constructor.
* Add methods for accessing server variables on the request.
API: Make HTTP headers case insensitive.
Move header extraction to the request class.
Move method detection to the request class.