Decouple DATA patches from the executing script
Simplify internal representation of patches

 - remove support for IO objects, since we no longer access ::DATA
   directly
 - since we don't need to support IO objects, use a separate class for
   string patches and stop wrapping strings in StringIO ojects
Remove patch hacks from audit
Remove patch hacks from unpack