changes for struct layout

This fixes a couple of problems with struct layout.
It adds a struct-size argument to the finish_record_or_union
method, and fixes a thinko in convert_struct_or_union - the bitsize
was being computed incorrectly.