Testing using Python GObject Introspection binding

DONE
======================================

Error detection:
 * Hook glib logv messages with non success exit value


IpatchConverter
 * Converter introspection

IpatchSampleTransform
 * Transform tests

IpatchSF2
 * Create, Save, Load, Compare
 * Generators
 * Modulators


TODO
======================================

Error detection:
 * Memory leaks
 * GObject reference leaks


IpatchBase
 * CHANGED flag set when children changed


IpatchContainer
 * Traverse tree
 * Insert, append, prepend
 * Remove
 * Count
 * make_unique, add_unique
 * Remove/add notifies


IpatchConverter
 * Test conversions
 * Convert link lookup/notify


IpatchFile
 * File pool
 * File references
 * Rename, unlink, replace
 * Read/write/seek
 * File identify


IpatchItem
 * Property notifies
 * Copy objects
 * Duplicate objects
 * Unique properties


IpatchItemProp
 * List
 * Set/get/verify


IpatchPaste
 * Paste handler introspection
 * Paste testing
 * Paste choices


IpatchSampleData
 * Data migration
 * Used/unused counting
 * Sample cache


IpatchSampleList
 * Append, prepend, insert, cut, verify


IpatchSampleStore*
 * File, RAM, ROM, SndFile, Split24, Swap, Virtual


IpatchSF2VoiceCache
 * Convert synthesis items
 * Select and update operations


IpatchSndFile
 * Read/write/verify


IpatchState
 * Item type introspection
 * Groups
 * Record
 * Retract
 * Undo/Redo

IpatchTypeProp
 * List
 * Set/get/verify


IpatchUnit
 * Unit type introspection
 * Conversion introspection
 * Conversion testing


IpatchVBank
 * Create/test

