Support portable libraries

Don't merge this yet, it's still work in progress, I just want to discuss the approach before proceeding with the rest

I've taken a different approach compared to FSharpx and the Freebase type provider

In FSharpx we use FAKE scripts to reuse the same .fsproj for both the portable and normal build, but that hides errors until we run FAKE (which I usually forget). I've used 2 .fsprojs instead, it's a little more work because when we add a file we must add it to the two project files, but it's easier to make sure everything is working without having to leave Visual Studio

In the Freebase type provider, instead of using quotations and splicing like in all the other samples, the expressions are constructed manually because we need to reference the runtime assembly instead of the current executing assembly (the design time assembly). This makes the code much uglier because of all the reflection stuff. Instead of that, I've created a set of helper methods to traverse the quotations and do the necessary patching. It's still a little flaky, but at least for the simple expressions used in the csv provider seems to be working ok.

@tpetricek let me know what you think of this approach (https://github.com/ovatsus/FSharp.Data/commit/29de4511c12dba778c7e3ae8788f991d682ac753#L4R51) Are you ok with it? Do you think it might cause performance problems when compiling?