Well, as far as integrating with LimeLM is concerned, it sounds like you'll want to use custom license fields. For each module you can create a separate custom license field. And when you generate product keys you can set different values for the fields.
And in your app you'll use GetFeatureValue() to get the value for the field to see if the customer has purchased the module or not.
Our FastSpring example code actually shows how to generate product keys and set the custom license fields at the same time.
Is that what you're asking?