Extract some useful classes and simplify Glide.with().using() usage

The biggest change is (32fccfb):
Make the engine require only the dependencies it will use based on `DiskCacheStrategy`.