Add dzil generated files to gitignore
Add ability to set custom firefox profile with user preferences

This is the beginning of my attempt to address #64. So far, it only
sets user preferences, as defined in [mozillazine][1], and without any
validation of types or preference names. I'm planning to add an
add_extension sub, as that's what I initially wanted this for in the
first place.

There's still a lot up in the air: should it be its own project
entirely? If it should go in Selenium::Remote::Driver, does
Selenium::Remote::Driver::FirefoxProfile make sense as a name? Should
the tests be in its own separate file? I think I'll eventually just
add the tests to the 01-driver.t, so I don't have to duplicate the
mocking/recording code, but for now I'm keeping them separate for ease
of execution.

[1]: http://kb.mozillazine.org/About:config_entries
Add FirefoxProfile documentation: boilerplate and example usage
Raise firefox_profile option out of extra capabilities hash

This is consistent with the Ruby and Python bindings, where the
profile option is accepted into the arguments for a new driver, even
though it's passed in the extra_capabilities to the Remote server.
Add support for additional preference types

We've added validation for booleans, ints, and strings that look like
ints. This ended up being a little more complicated than expected,
since there's not much help in the way of determining the type of a
string.
Pull out writing preference to disk in FirefoxProfile.pm
Tests failing: WIP for adding extension to custom profile
Add sample firefox extension for testing
Complete simple extension addition for custom profiles
Consolidate browser startup tests in 05-firefox-profile.t

Starting up a browser is probably the slowest part of the test.
Update documentation for FirefoxProfile in light of e2d7d81
Croak in FirefoxProfile when extensions aren't set up properly
Add convenience pass through set_preferences method
Refactor profile directory up into profile object
Fix relative filepaths to xpi for `dzil test`
Add Archive::Extract as required package
Rename to Firefox::Profile to allow for Firefox.pm, potentially

The Ruby and Python bindings are able to run tests without a Remote
Webdriver session being open on localhost:4444. I'd guess they're
searching for the Firefox binary and then injecting a profile with the
Webdriver extension, and if we're ever interested in implementing
similar Remote driver independent functionality, I'd imagine it could
go in Selenium::Remote::Driver::Firefox.
Add recording code and Windows recordings for firefox profile tests