AbstractEntity.getLocations: return immutable copy

- And adds EntityInternal.clearLocations
Merge pull request #784 from aledsage/refactor/AbstractEntity-getLocations-immutable

AbstractEntity.getLocations: return immutable copy