How do I Set Parent to Armature?
Well, I got it working, but I'm still not quite sure why it works now.  I started by getting rid of all the extraneous crap but where it was crapping out seemed to be at the bpy.ops.object.select_all(action='DESELECT') statement, which still seems to me to be harmless.  Anyway, here's the code that works:

import bpy

#deselect all objects
bpy.ops.object.select_all(action='DESELECT')

ob= bpy.data.objects['Tuxedo Shirt']
arma = bpy.data.objects['Armature']
arma.select = True
bpy.context.scene.objects.active = arma 

bpy.ops.object.mode_set(mode='EDIT')

parent_bone = 'CC_Base_BoneRoot' # choose the bone name which you want to be the parent

arma.data.edit_bones.active = arma.data.edit_bones[parent_bone]

bpy.ops.object.mode_set(mode='OBJECT')

bpy.ops.object.select_all(action='DESELECT') #deselect all objects
ob.select = True
arma.select = True
bpy.context.scene.objects.active = arma    #the active object will be the parent of all selected object

bpy.ops.object.parent_set(type='BONE', keep_transform=True)


I kind of hate it when it looks like magic and I don't understand why, but at least I'm not going to worry about it for now (if anyone has an explanation for it, though, I'd love to hear).