WiP: fix environs tests on windows

Unfortunately, permission checking on Windows does not work as expected. For example, doing a:

```go
os.Chmod("C:/test.txt", 0600)
```

will set permissions to:

```
-rw-rw-rw-
```
yes. All paths on windows have a drive letter attached. So url.Parse() will evaluate that and u.Scheme would become "C". This will further cause the tests to fail.

Note, this does not fix the issue. The file:// transport is registered to http.NewfileTransport (fileTransport type) which in turn accepts a http.fileSystem type. That basically chroots any path passed to file:// in that particular folder. For example, registering a file protocol like so:

```go
transport.RegisterProtocol("file", http.NewFileTransport(http.Dir("/")))
```

will allow you to access paths from that folder down. On windows the equivalent would be:

```go
transport.RegisterProtocol("file", http.NewFileTransport(http.Dir("C:/")))
```
After registering the protocol, all file names that are passed to the http client are relative to that. So if we use "/home" instead of "/", to access a file in "/home/user/test", we would simply do:

```go
client.Get("file:///user/test")
```
On Linux type systems, using "/" is great, because this is the root filesystem and all volumes are mounted under it. So you have access to everything. But on windows, you have multiple drive letters, and paths containing the drive letter itself. So almost always, on windows you will have:

```go
client.Get(`file://C:\Users\Administrator\some\path`)
```

This makes the filesystem transport inpractical for usage on windows in juju's context. We would have to either normalize all paths before sending them to the client, or create a new filesystem transport that would allow normal windows/linux paths without chrooting (which we do not use on ubuntu anyway). I have spoken to @natefinch about this, and he will be taking a look when he has time.