FSharp.core fixes #313

This fixes #313 and addresses #308 and also adds missing support for framework versions other than 4.0.  

For a fully versioned F# core e.g. `FSharp.Core, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3aa` then it is references as is using the exact version from the GAC.

There is a [fix in MonoDevelop][1] that resolves the FSharp.Core plain un-versioned reference to a fully versioned AssemblyReference, if this patch is not in place then the current F# Default F# core folder is used to resolve this reference, this will allow everything to work correctly until the patch filters through to production.

In several places 4.0 was used even though the current target framework was for to 4.5 etc.

[1]:https://github.com/mono/monodevelop/commit/6d1ef5ed07e19a32322cfd80d72db18effb050b0