LINQ Query to Fluent Syntax (and small bug fix to CSharpParser)

CSharpParser currently ignores casts in LINQ join clauses. This pull request fixes that.

LinqQueryToFluentAction converts LINQ queries to fluent syntax (according to the C# specification rules).

```csharp
from x in y
from z in w
select x * z
//Becomes
y.SelectMany(x => w, (x, z) => x * z)

from x in y
from z in w
where x > z
select x * z
//Becomes
y.SelectMany(x => w, (x, z) => new {
   x,
   z
}).Where(_ => _.x > _.z).Select(_ => _.x * _.z);
```

Note that some unit tests have improper indentation due to bug #201. Once that's fixed, the tests for this action will have to be corrected.