Rename ApplicationBuilder.createChild to addChild

- Adds `ApplicationBuilder.addChild(EntitySpec)` and `ApplicationBuilder.addChild(Map, Class)`
- Deprecates the old createChild methods
- Updates all uses


Also adds guards to ApplicationBuilder for misuse:
    
- throw if doBuild() calls manage()
- throw if concurrent calls to manage() attempted
- throw if tries to modify the appSpec after the app has been created (e.g. calling configure(Map))
- improves javadoc