List unpacking works correctly

Various changes here:

* need to modify the unpack string according to what struct we're unpacking
  from in some cases
* lists actually know their length
* record list's bufsize and record a structure's size
Re-enable and fix Connection.get_setup