Allow Callback WeakReferences.

Solves https://github.com/square/picasso/issues/580.

This PR allows to use `into(Image, Callback)` or `into(Image, WeakReference<Callback>)`. The second form has the advantage of not obliging to call `cancel(ImageView)`, but a reference to the `Callback` has to be held long enough to be called back when the request is finished. 

Typically, using this second form, `Activity` or `Fragment` will hold a reference to the callback and pass a `WeakReference` to it to Picasso.

----
I think it's one way to do it. It should be valid, but I am not sure it meets Picasso coding style. I introduced a private `into` method overload that accepts both a `Callback` or `WeakReference<Callback>` and will use one of the 2. This is not my most beautiful piece of code, but the fastest way I found to get it working without code duplication. 
This exception makes no sense to the caller and it will always be false. If you are just sanity checking, throw an `AssertionError`.