Re-orginze the plugin as instantiated classes

As discussed in the issue #31 , We want to re-organize the plugin to have more professional OOP style.

@westonruter said:
> In general, I believe the smaller the class the better. The more that classes (and methods) do just one thing and 
> do it well, the easier it will be to maintain the plugin and (especially) be able to write unit tests, as each 
> component class of the plugin can be replaced with another component that implements the same interface. You 
> know, mocks and dependency injection.

You can read the full-discussion in  the issue #31

 so.. as starting point we want to agree on the scheme pattern and the needed classes.

What is the classes names prefix shall we use? `DepMin_` or `Dependency_Minification_` ?
How many classes can you separate the plugin to, and what they are? (write a names)
...etc