AddDbContext method for DI

I preferred to have the ThreadStatic field declared as private, so I put it on DbContext together with the static method. This practically hides the hack from anything outside DbContext. If we think it is useful to have public surface for this we can either make the method public or have another public method in some other place that calls the one on DbContext. Or we can do what you suggest and make the ThreadStatic field internal. I don't mind either. Not sure what is best.