Recursively replace template variables

This an implementation for issue #109 to recursively replace template variables.

The value from the exports hash is then passed back into parseTemplate'. If the resulting value is an empty list, then use the initial value, otherwise replace the value with the new combined value.

This implementation makes it so each plugin does not have to attempt to replace the template variables themselves.