Browser tests (wd, sync version)

It was a bit harder than initially expected, but this is a more synchronous version of functional tests using [wd-sync](https://github.com/sebv/node-wd-sync).

Using `wd-sync` we can write asynchronous tests like we would do for synchronous ones, eg.

```js
sync(function() {
  browser.get(serverHttpBase);
  browser.elementById('nick').type('bob');
  browser.elementById('submit').click();
  expect(browser.elementByCss('strong.nick').text()).to.equal('bob');
  done(); 
});
```

instead of

```js
browser.get(serverHttpBase, function() {
  browser.elementById('nick', function(el) {
    el.type('bob', function() {
      browser.elementById('submit', function(el) {
        el.click(function() {
          expect(browser.elementByCss('strong.nick').text()).to.equal('bob');
          done(); 
        });
      });
    });
  });  
});
```

Also, I've added a new `config/test.json` default configuration file you can extend in a `config/local.json`. The test configuration has a `client` key which contains wd remote configuration (useful if we intend to use [saucelabs](http://saucelabs.com/) without exposing our credentials publicly)

Sample `config/local.json` configuration:

```json
{
  "client": {
    "server": "ondemand.saucelabs.com",
    "port": 80,
    "username": "<username>",
    "token": "<access-token>"
  }
}
```

One could also use environment variables to configure the remote client configuration (useful for travis integration):

- `TEST_REMOTE_SERVER`
- `TEST_REMOTE_PORT`
- `TEST_REMOTE_USER`
- `TEST_REMOTE_TOKEN`

**Notes**: 

- when set these environement variables take precedence over any JSON configuration.
- using saucelabs is not possible atm as it requires a publicly available live server to run the tests; so we'll have to deploy to heroku a test instance of our app before actually running browser tests
- I opened [an issue](https://github.com/sebv/node-wd-sync/issues/8) to `wd-sync` bugtracker to see if the `_it` hack is really necessary