Refactor getenv access using factory methods

This is an alternative to PR #6. 

This contains a compability break:

Old:

```
$xdg = new \XdgBaseDir\Xdg();
```

New:

```
// Using getenv internally
$xdg = \XdgBaseDir\Xdg::createFromEnvironment();

// OR: create using a given array
$xdg = \XdgBaseDir\Xdg::createFromArray([
    'XDG_CACHE_HOME' => '/tmp/xdg/cache',
    'XDG_CONFIG_HOME' => '/tmp/xdg/configs'
]);
```

This makes it possible to test the class without mocking the `getenv` function at all.