Update to include requirements checking

This version loops over all enabled plugins to determine which data objects are required in order to cut down on processing time of returning objects that are not used.

One limitation is that there must be a space after the variable in the plugin in order to match - this should be fine for most plugins but may require more in depth testing.