clear up confusion about desired capabilities in constructor hash

the distinction between what belongs in the init hash vs what goes in extra_capabilities isn't initially evident. additionally, the defaults that are set on the init hash make it troublesome to interact with appium, where things like browser_name=firefox and version=23 aren't applicable and shouldn't be sent in the request to the remote webdriver server.

proposed additional constructor:

```perl
my $caps = {
    browser_name => 'Firefox',
    version => 24
    auto_close => 0,
};

my $driver = Selenium::Remote::Driver->new(
    remote_server_addr => 'localhost',
    port => '4444',
    desired_capabilities => $caps

my $appiumCaps = {
    app => 'app.zip'
};

my $appium = Selenium::Remote::Driver->new(
    port => '4723',
    desired_capabilities => $appiumCaps
);
```

perhaps the only things out in the init hash proper would be remote_server_addr and port; everything else would be a desired capability. 

this has the added benefit of mirroring many of the other bindings, including the official ruby and python bindings.

of course, we should continue supporting the current extra_capabilities usage for backwards compatability

* add test for #36 chrome proxy null issue