Refactor machine pkg to use interface

The primary goal of this is to separate out the "live" machine logic specific to reading data off of a live system from what sort of information we need in other parts of the system. For example, in the (soon-to-be-written) Agent integration tests, we don't want the Machine trying to make netlink queries. This is *not* being done with the goal of abstracting the CoreOS-specific logic away from other operating systems.