Add generic typing (1st pass).

There's a lot of work to do here.  But it really does end up being helpful to have generics at your disposal.
If I have an IEnumerable<string>, then I expect only strings, etc.  If I don't want types, then simply use IEnumerable<any>.

Use a diff tool to see how far I've gotten.
I did find some bugs too, like "contains" should return a boolean, not an IEnumerable. (fixed)

Lastly, I really think if done right, this linq.d.ts could be the end all documentation for linqjs.
If I had my way (I'm working on it right now) I'd have the entire linqjs library source in TypeScript and the component rendered to js.