Groundwork for AbstractEntity.LOG to be private

- deprecate field (so can make it private in next release)
- remove all uses of it, declaring+using log field in sub-classes
Declare Logger fields as private
Merge pull request #907 from aledsage/fix/deprecate-AbstractEntity.log-protected-field

deprecate AbstractEntity.log protected field (so can make it private)