Cache the current connection at each buffer, to avoid repeated, costly lookups.

I noticed while profiling some completion code that connection lookup was taking an inordinate amount of time (see profiler snapshot below, sampled while completing a method)
![image](https://cloud.githubusercontent.com/assets/7484/5422488/ab38522e-8251-11e4-90e2-b9c4ad1e581f.png)