Includes side effects: - No longer need to restart app for user agent string change to take effect - parseAs extension function requires a Json instance in the calling context, which doesn't necessarily need to be the default one provided by Injekt
* Move shared configuration to subprojects in root Gradle file * Missed but not forgotten * Review changes
* Extract source api from app module * Extract source online api from app module