Allow engines to be copied + blacklist broken flows

Allow engines to be copied to integrated projects via
update.py and for the time being blacklist threaded and
graph flow from being copied (to avoid breakage) until
the bugs associated with fixing those flows are fixed.

Also a bug was found that would not allow copying over
the utils module (since a utils.py file no longer
exists) so ensure that when we encounter a module (and
not a .py file) we can copy over the correct file that
belongs to that module (in the case of utils this would
be the __init__.py of the utils folder).

Also fixes a bug where it appears that due to our usage
of defaultdict we would copy over more modules than
desired due to how 'reading' a key in a defaultdict
actually creates that key using the default value which
caused these extra module inclusions.

Change-Id: I2aa732fc0baf269ee87aa72bfe8495e51ad21faf