Remove redundant extra capabilities default checking
For #118 & #64 - restore Firefox::Profile from #84
Address use_ok vs skip_all issue in FF profile test
Update xpis and mark them as encoded files
Refactor Firefox Profile tests and add os x recordings
Revert "Remove redundant extra capabilities default checking"

This reverts commit 959f599c5520e5a7ba95c45cdaefbcf6e72df219.
Remove unnecessary piping to test file
Add linux mocks for firefox profile
Promote firefox_profile to init hash argument

I struggled with this for a few days - should the initiation look like

    my $fp_driver = Selenium::Remote::Driver->new(firefox_profile => $fp);

or

    my $fp_driver = Selenium::Remote::Driver->new(extra_capabilities => {
        firefox_profile => $fp
    });

My issue is I'm not sure what the 'extra' in 'extra_capabilities' really
refers to. This leads to, in practice, some confusion about what
arguments go where.

The disadvantage of having it as a primary arg is that it adds to the
confusion of what extra_capabilities is for in the first place. The
advantage is that it will fit into the future way that is mentioned in
issue #110 where everything in the init hash makes it into the
desiredCapabilities object in the eventual POST to /session.

It is probably internally consistent to have it in the
extra_capabilities hash considering the current implementation in 0.18,
but I was reluctant to do that because it wouldn't reflect the new API
that should supercede extra_capabilities.

I decided to promote it to a top level argument in light of the planned
changes from #110.
Generate a build branch for the firefox-profile changes
Update os x mocks temporarily
Whitespace in Profilepm
Add POD for Profile.pm
Die instead of croak when we can't open userjs
Add set_boolean_preference for Firefox Profile.pm
Add encoded profile to test fixtures

This should fix the failing tests.

When we encode_base64 the Firefox profile, it appears to generate a
slightly different string every single time. So, we're doing an ugly
thing where we encode it ourselves and sneak the pre-encoded profile
into desiredCapabilities by putting in extra_capabilities manually. It
means we're not testing the "transform from a ::Firefox::Profile to an
encoded thing" functionality in Driver.pm. But, we're still sure that
the encoded version works with the webdriver api when we record it, so
it has some use.

We don't need to re-encode a profile every time we run tests on
different platforms or anything like that - this one should be fine for
the forseeable future, so the toggle is just in Firefox-Profile.t and
not in an environment variable or anything.

[ci skip], since we haven't updated the linux mocks yet.
Fix linux mocks for firefox profile after 87c3430
Fix Firefox Profile invalid file extension test
Add windows mocks for firefox tests
Merge branch 'firefox-profile', fix #118

Conflicts:
        t/mock-recordings/01-driver-mock-darwin.json
        t/mock-recordings/02-webelement-mock-darwin.json