ivory-tower: types and api now support tracking tower dependencies

* must make a dependency on containing module for all types that may be
  used to create tower dataports or channels
* also renamed NodeCodegen to Codegen, and cleaned up a few other spots
  of code
FooBar: change taskModuleDef dependencies to use the tower addDepends api
ivory-tower-freertos: compile tasks and comm primitives into individual modules