How to setup custom data-structures in blender python?
Make your custom class a subclass of bpy.types.PropertyGroup, then you use that as the type for a bpy.props.CollectionProperty. See the collection example here.

I expect your collection should be part of the armature data, if you wanted a more global collection add it to bpy.types.Scene.

class BoneCluster(bpy.types.PropertyGroup):
    name = bpy.props.StringProperty()
    # ...

def register():
    bpy.types.Armature.clusters = bpy.props.CollectionProperty(type=BoneCluster)

def unregister():
    del bpy.types.Armature.clusters