scrooge: make scrooge-runtime 3 backwards compatible with scrooge-runtime 2
Via some method redirection and the introduction of ThriftStructCodec3 which extends ThriftStructCodec, scrooge-runtime 3 should now be drop-in compatible with scrooge-runtime 2 (I actually tested this in the birdcage with the tweetypie project).  That means with this change:
  - scrooge-runtime in the birdcage can be replaced with scrooge-runtime 3
  - all projects in the birdcage that currently use scrooge2 can use scrooge-runtime 3 without any changes (except pom)
  - scrooge 2 and scrooge 3 generated code can coexist in the same project without dependency conflicts
  - conversion from scrooge 2 to 3 can be done more safely on a project by project basis, rather than having to upgrade the entire birdcage

There are still some difficult cases, such as with value-add libraries like gizmoduck-twiggy, but the problem space is now smaller.

RB_ID=139582
release 3.1.1