I've finally traced down the causes of several of the bugs which caused PyConstraints to work incorrectly (or not at all). * Freeing is now done using BLI_freelistN inside the pycon_free function, instead of looping through the targets ourselves. This fixes all of those Memblock free: pointer not in list errors. * BPY_pyconstraint_update now correctly creates/frees the constraint's targets as needed. Previously, it was creating/removing the wrong number of targets. Also, pyconstraints no longer get disabled when using armatures (not bones) * The panel drawing was also not working right, as there were still some offset issues.