Migrate gem to engine

* Migrate to engine
* Rewrite tests to work with engine
* Rewrite generators to new files path inside app folder
Line is too long. [112/80]