Adam/generalized draft import export 2

@dmitchell -- is this the right idea?

https://openedx.atlassian.net/browse/TNL-574
since this function expects a list of nodes composed of draft modules, there _should_ never be a case where a published sequential is in the list as anything but a node's parent. In which case the parent sequential won't be found in the list of draft modules. Having the `DIRECT_ONLY_CATEGORIES` allows us to sidestep the costlier step of checking if the parent sequential is in the list of draft modules