Create ManagementContextInternal

- Adds the interface ManagementContextInternal
- Remove references/casts to AbstractManagementContext;
  instead use ManagementContextInternal.
Remove EntityManagementSupport.getManagementContext(boolean)

- Just have getManagementContext(), which will always return
  either the real or the "non-deployment" management context.
  Relies on failing fast by subsequent calls failing, if not
  permitted on the "non-deployment" management context.
NonDeploymentManagementContext implements ManagementContextInternal
Don't deprecate AbstractEntity.getManagementContext()

- Use getManagementContext() in preference to
  getManagementSupport().getManagementContext().
- Remove @Deprecated from AbstractEntity.getManagementContext()
  and from EntityInternal.getManagementContext()
- Fix the "deprecated since 0.4" to say "deprecated since 0.5"
  for EntityLocal.getManagementContext; prefer folk to use
  EntityInternal.getManagementContext().
Don't deprecate EntityInternal.getExecutionContext()

- Still deprecated in EntityLocal.getExecutionContext()
  TODO: is this right?!
- Not deprecated in EntityInternal though.
  Don't expect people to always call getManagementSupport().getExecutionContext().
Tidy NonDeploymentManagementContext
managementContext: incorporate review comments
Merge pull request #608 from aledsage/fix/getManagementContext

Improve getManagementContext