Base pipeline components

* Create base Interfaces for Pipeline
* Add first base implementations for Pipeline
* Add initial test for core functionality