[#4452] Use constant values, not integers

- Use constant values, to make extension possible
Remove code munging

- Per the comments, changing the code value if it fell outside the range of the
  defined constants does not change how isValid() works, and does not allow for
  custom constants in extending classes, unless you also override the
  constructor.
Merge branch 'hotfix/4452' of git://github.com/weierophinney/zf2 into hotfix/4452
Merge branch 'hotfix/4452' into develop

Forward Port #4452
Merge branch 'develop' of github.com:zendframework/zf2 into develop