Make entity+location config more similar

Prep for the big pull request of making location extend entity.

This PR makes entity and location config more similar.
* Move "Rebindable" to EntityInternal and LocationInternal
* Delete deprecated AbstractLocation.getConfigBag, in favour of getRawLocalConfigBag()
* Making location+entity config methods more consistent
    ** adds getAllConfigBag() and getLocalConfigBag()
    ** entities store unmatched config, accessible through get*ConfigBag
    ** child-entities inherit unmatched config
* Use location.get{Local|All}ConfigBag, instead of (now deprecated) getRawLocalConfigBag
* Use loc.get*ConfigBag instead of loc.getAllConfig(boolean)
  Because entity has a method `Map<ConfigKey,Object> getAllConfig()` so confusing to have `getAllConfig(boolean)` that returns `Map<String,Object>`
* Renamed configBag.getAllConfigRaw to getAllConfigMutable
    ** and renamed getUnusedConfigRaw
    ** and changed callers that really didn't need mutable
* Add EntitySpec.id()
* Convert JavaOptsTest to not use mockito
* Fix rebind, so doesn't call entity.init()
* Persist/rebind unmatched entity config