Image Caching Layer

Squashed commit of the following:

commit afb8e40a42d9552c0e036c507cfdd055fd357317
Author: Corey Frang <gnarf@gnarf.net>
Date:   Thu Jan 31 18:15:54 2013 -0600

    return early instead of else

commit f288c49bdd9754c1bf79ed20e671f300336c6914
Author: Corey Frang <gnarf@gnarf.net>
Date:   Thu Jan 31 18:12:46 2013 -0600

    We don't need exists...

commit fb2a20530f882f3209d4f37f7bc4c4c1ca8c464a
Author: Corey Frang <gnarf@gnarf.net>
Date:   Thu Jan 31 17:52:11 2013 -0600

    Simplification

commit 9ca7f602a6f92f40eaebce035176c9a406974c0a
Author: Corey Frang <gnarf@gnarf.net>
Date:   Thu Jan 31 17:49:22 2013 -0600

    WIP: Image caching layer