Rework the library to be much cleaner

 - The macro now takes a list of directories instead of patterns.
 - The macro now returns a `Package` object instead of an array.