Worked on Task interfaces and Program handler

Started breaking down the interfaces into simpler ones so its easier to
create tasks without extra junk. As well worked more on the Program
class and how it handles the tasks. Is getting close to fully coded to
be used in the encoder. Though i need to do more work and test it fully.
I might end up creating a fake program before the encoder is finished
just to test this. At this point i've failed to follow coding guide
lines to test everything you code.