This is an extensive patch that fundamentally changes the way ImageField works.
The current ImageField in Drupal 6 attempts to piggy-back off of FileField while providing its own CCK field type. This approach requires ImageField to implement hook_field() and several FileField custom hooks, many of which are buggy or not being used at all.
I've been fixing several issues in the FileField queue, such as broken revision handling (#370531: Properly Handle Revisions for document control) and duplicate uploads (#370015: Upload issue with clicking 'Add another item' multiple times (Repost w/ screencast)). However, these problems still exist in ImageField since it uses it's own hooks for managing its fields.
In short, we've got a lot of duplicated code between ImageField and FileField, and the code that is shared between the two is shared by mechanisms that CCK was not made to handle (i.e. it's all a bit of a hack to work around limitations in CCK).
So this patch removes the "Image" field type, and makes ImageField a pure widget for FileField. This means less code in ImageField, more reuse, and less bugs. The only side-effect of this is that all the formatters specific to ImageFields are also now available to FileFields. However, ImageCache already provides all its formatters to FileField anyway, so this isn't that big a shift.
This patch refactors ImageField to make it a pure widget. It also fixes the upgrade path between the Drupal 5 1.x version of ImageField and the current 3.x. This patch needs to be applied to both FileField and ImageField at the same time.