kernel: new combinator 2with = with with

Here is a patch for a `2with` combinator, analoguous to `2curry`. It's something I've often wanted and I've found tons of uses for both in the library and in my own code. I think it makes the code much nicer than having to write `with with`. :)