Projects support and check errors mode

Hi,

I tried to add an errors checking mode to psc in order to get instant errors highlight by writing a plugin for some editors. 

This pull request includes two main features : 

## Projects 

In order to get errors from a text editor, psc should be aware of the source files available for it to compile. This option does not take arguments but will collect source files by looking for a specific configuration file : `purs.json`. When psc starts with the option `--project` it will search for this file in the current folder and its parents. this file contains pretty much the same data as the grunt example : 
```
{ "files" ["test.purs", "src/**/*.purs"] }
```
it fully supports grunt like wildcards. once this file is read by psc it applies these globs to the root folder (the one including the configuration file) to get a list of files in project. I also added this option to `psc-make`.

## Errors check

When the flag --errors-check is set, `psc` will execute a stripped down version of the `compile` function, stopping after errors detection. it will then return errors as json (to ease parsing when writing a plugin). This also works for Parsec related errors.

## Issues

- As `psc` can return only one error for a whole project, we can't have a per-file error detection

## TODOs

- I plan on writing a plugin for ST3 to test this PR
- Unit testing (haven't had the time yet)


Until I have done these points, this PR is mainly for discussions about the usage and the implementation of these new commands. Please note that I haven't done Haskell in a while so comments are welcome about the code itself.

After this I plan on adding some commands to get auto-completion working when editing code, just like Haskell plugins. This will certainly be harder, that's why I am starting with this small PR :)

Thanks