Issue 3148

Fix issue #3148, which is that the lifetimes of borrowed pointers are sometimes inferred to be too small.  Also fix the borrow checker's treatment of vec patterns, which was completely absent. 

Finally, add an option to tidy so you can leave "// WARN" comments in your code that will be printed out.  This is useful for putting notes to yourself of things that are not done.

r? @catamorphism