Add AbstractModule and fix race condition in Proton.getInstance