Restructure the lib and add `to_number` algorithm

Hi Allan;
Some words about the pull request

* I restructured the lib and moved related methods under a same class. I thought it's nicer and easier to understand. (All the tests passes for sure)
* I added the `punch.rb` file that adds methods to Ruby's core classes. I think this is a better approach than the previous one, because it only adds simple methods that is needed to core, not the whole bunch of unrelated methods.
* At first I didn't want to require `punch.rb` in the `farsifu.rb` file and leave it to the user if they want to punch the methods to core by requiring `farsifu/punch` instead of `farsifu` , but then I decided to leave this decision to you.
* I also added `to_number` algorithm to farsifu that I coded before. It converts `یک میلیون و دویست و سه هزار و چهارصد` to `1203400` :D.  While I just wanted to make the lib work with minimum changes, the `constants.rb` looks somehow ugly. I probably going to alter the file later.