Migrate gem to engine

* Migrate to engine
* Rewrite tests to work with engine
* Rewrite generators to new files path inside app folder
Redundant `self` detected.