Add factorys for ModelLoaders for runtime config
    
Defaults don't change, but allows you to
dynamically add new loaders for models or replace
the defaults.
Allow arbitrary uri loader in resource loader

Lets us use factory for uris rather than relying
on our specific implementation
Gracefully allow Volley to be optionally excluded

Uses new factories to manage Volley singleton to
reduce Glide's dependence on Volley. New package
means we can easily exclude not just Volley, but
also our classes that depend on it when Volley is
being excluded. We also can check to see if Volley
is present at runtime and register a factory that
simply throws an exception if we try to fetch a
url, instead of throwing an exceptionw henever we
tried to fetch a model that optionally might try
to fetch a url (like a string or uri).
Add a model cache

Allows generalized caching from caches stored in
factories for expensive operations (like
parsing a string to a URL).
Use generated hashcode and equals for metadata
make project.properties target match manifest
Ignore some lint warnings
Don't override equals/hashcode in metadata
Only create target once per image view
Allow chaining of arbitrary # of transformations

Also includes some other cleanup, including
allowing arbitrary downsamplers.