Refactoring some minimagick

I'll leave this PR open in order to see diffs from master.

Feel free to comment, propose changes and code with me! :sailboat: 

Roadmap:

- Split this one big file lib setup into many files.
- Add some tests(and convert the existing ones to rspec, is this a good idea?)
- Refactor & document
- Take in account the 6 open pull requests and solve if possible

Also, make it be backwards compatible(the current test coverage isn't enough to give me security about it... i'll see what i can do).

Thanks.