Better error handling for missing files and extensions.

Better error handling in case of file being present and not having the required extension.

With this path, the flow would look like:

```sh
$ duo test

        error : No such file :  kl
```

```sh
$ cat > test
//Some JS
```
```sh
$ duo test

     building : test
        error : Error: test has no extension, only .js and .css are supported.
```
there's been a bunch of discussion regarding `win-fork` vs `cross-spawn`. 

windows people seem to suggest `cross-spawn` is the better solution. see https://github.com/duojs/duo/pull/223.