Bring in webmock and bandaid some failures.

I'm adding webmock in anticipation of some integration-style tests for communication with the remote agent. I consulted a little with @bdehamer and @alexwelch on how this should work.

We're going with the default webmock behavior (raising an exception when a network connection happens), but using a metadata flag to allow some tests to behave as they currently do. When we have a minute we'll probably go through and figure out if there are missing stubs in those tests that are causing them to hit the network.