Merge remote-tracking branch 'origin/github/rinrinne/dev-3.0' into stable-2.10
* origin/github/rinrinne/dev-3.0:
Remove unused import and annotation
Put exception message to logger
Rename ChangeWorker to EventWorker
Apply multibinding to Solver
Rename RabbitMQManager to Manager
Apply Provider pattern to SessionFactory
Fix shutdown channel/connection logic
Fix close logic for session
Fix shutdown session
Apply Guice Multibinder to Section injection
Add Guice multibinding extension library
Update gradle-shadow plugin to 1.2.1 then fix build.gradle
Update git ignore pattern
Some improvements
Change Solver structure
Decoupled normalize() from fromConfig()
Structured configuration classes
Cleanup codes
Create some packages then move classes
Roughly support multi config
Add MessagePublishers to listen ChangeEvent
Add dependency: commons-io
Get plugin name then assume config filename
Remove unnecessary codes
Change-Id: If41294c035f5bc3cdd658c686134acc30f36e184