[PoC] Introduce steps

Hey guys!

The current library is really cool but i think it is not really scalebale. If somone needs to filter before all validators are called and an another need the oposite. This make it really hard to use this library.

My idea was to introduce steps. Now the library has a `StepInterface` which can modifiy/validate/whatever the item. Now can each developer decide, how his workflow looks like. Just instantiate a `StepInterface` and add them to the `Workflow` object.

I also added a `PriorityStepInterface`. This interface have a `getPriority` and with this method you can prioritize steps. Please note, that the developer can override the priority in the `addStep` method.

I think this will make the library more generic and easier to use.

> Please not, this is a __PoC__. Which means the code may not work and isn't finished yet.

Please provide Feedback!  
Because i marked the `Workflow` class as `final`, because we don't have to worry about any BC breaks.