Build automation with FAKE

Hi there,

I wanted to discuss these proposed changes with you (sorry they come in one big lump, I can look at packaging them more individually if you like only a few of the changes).

- I have added an .editorconfig file at the top level of the solution, as using tabs is fairly unusual when working with c#. This requires installation of an extension into visual studio, but I can add something to the read me to clarify.
- I have moved the source code into a src folder in order to keep the top level reserved for read me's and solution wide configuration files.
- I have created a build script that will currently run the build and tests. When passing in "Release" as a command line option it will then create the nuget packages in the build/output/_packages folder.
- I have simplified versioning somewhat by adding a version number at the top of the build.fsx file which will then regex replace the version information in the packages. I would envisage it in the future to be looking at assembly info or some such
- I have removed the AnyCPU target configuration from the project files and replaced it with an x64 configuration, as I believe this will help surface problems earlier when integrating the packages into consumer applications
- I have added test categories "LongRunning" and "LocalCluster" as my setup currently runs the tests against a cluster on a separate machine and the tests that assume a local cluster would fail in this configuration.

I hope you find some or all of these useful and would appreciate your feedback.