Add a convenience function for defining property handlers.

The keyword prop takes one or two arguments and and a block.  It will
define a function named after the first argument (a symbol) that
populates three instance variables: @attributes, @children, and
@attribute accessible to the block.

Note that next should be used inside of blocks instead of return.

Signed-off-by: Alex Zepeda <alex@inferiorhumanorgans.com>
First pass at a quirks framework.

Now we actually send fully qualified HTTP/S URLs back when a DAV:href
is needed -- except for the MacOS 10.6 case.

Quirks are defined in config/quirks.yml and shoved into a hash in the
Quirks class by the config/quirks.rb initializer.  The [] operator is
used on the Quirks class to retrieve individual quirks.  For now,
quirks are simply an array of regular expressions that we can attempt to
match against the user agent string.

Signed-off-by: Alex Zepeda <alex@inferiorhumanorgans.com>