refactor(node-watcher): adapt to new DI architecture

This commit moves the node watcher code to the presentation layer and
adapts it to be ready to use DI. Thus, the node watcher is separated
into a port and adapter.

Bug: twpowertools:226
Change-Id: Id36d5407ff478006eb8c057db1dcad05fd30b7d6
diff --git a/src/presentation/nodeWatcher/NodeWatcher.port.ts b/src/presentation/nodeWatcher/NodeWatcher.port.ts
new file mode 100644
index 0000000..83372b6
--- /dev/null
+++ b/src/presentation/nodeWatcher/NodeWatcher.port.ts
@@ -0,0 +1,23 @@
+import { NodeWatcherHandler } from "./NodeWatcherHandler";
+
+export interface NodeWatcherPort {
+  /**
+   * Start watching mutations to nodes.
+   */
+  start(): void;
+
+  /**
+   * Pause watching mutations to nodes.
+   */
+  pause(): void;
+
+  /**
+   * Add a handler to watch certain mutations.
+   */
+  setHandler(key: string, handler: NodeWatcherHandler): void;
+
+  /**
+   * Remove a handler by key.
+   */
+  removeHandler(key: string): boolean;
+}