Reorganize code into multi-module project
Update .gitignore with ignoring target directories
Update .gitignore with IntelliJ files