set up "working" tests for path pattern compilation

Note: We can optimize the tests by compiling only once for each group of examples
all but one example of the path pattern compilation tests work
clarify variable name
grouping the path pattern examples by regexp, use \A...\z instead of ^...$
possibly fixed a path pattern compilaction bug, added a commented spec for :name(.:format)?

(see https://gist.github.com/2154980#gistcomment-169469 on the second part)
/:foo still parses /foo.bar correctly
HEAD requests on static files should have proper Content-Length

Code originally intending to fix byte encodings was overwriting the
proper Content-Length headers set by send_file

also contains 2 trailing whitespace fixes
Merge pull request #517 from jormon/no_length_head

HEAD requests on static files should have proper Content-Length
default to drop_session protection (should play nice with APIs and login pages)
Resolve test name conflict

In delegator_test.rb, there are two tests named
"registers helpers with the delegation target", causing "method
redefined" warnings and the first test not to be run.

Rename the second test so that all tests run.
Resolve test name conflict

In AfterFilterTest in filter_test.rb there are two tests named
"executes filters in the order defined", causing the first not to be
run.

Rename the first test, and fix the mock app in the test so it doesn't
cause a Rack::Lint error.
Resolve test name conflict

There are two tests named
"is possible to apply user_agent conditions to before filters with a path"
in filters_test.rb, causing "method redefined" warnings and tests not
being run.

Rename second of these to accurately describe what it's testing
Resolve test name conflict

sanitize_name in contest.rb strips out any non-word characters, so
'is false for status > 404' and 'is false for status < 404' end up as
having the same test name, causing lost tests.

Rename these tests to use 'gt' and 'lt' rather then '>' and '<'.
Resolve test name conflict

There are two tests named
'sets the Content-Type response header without extname' in
helpers_test.rb.

Rename the second to accurately describe what it tests.
Resolve test name conflict

There are two tests named 'allows passing time objects'.

Rename tests so they don't clash.
Merge pull request #519 from mattwildig/missing-tests

Missing tests
Merge branch 'master' of github.com:sinatra/sinatra
Update README links to Haml

The Haml site has moved to http://haml.info.
Merge pull request #520 from mattwildig/haml-link

Update README links to Haml
Adding RABL support