Simpler generated version information.

Move the logic for generating version information out of the generated
code. Instead expose all the information from the generated code
explicitly and let the generic code take care of presenting it in a nice
format.
Generate version information for all components.

Generates a ComponentVersion class for each jar. This will allow us to see in messages.log
if the versions for all jars match up.
Merge pull request #1426 from thobe/2.0-component-versions

Improved Version Information
Don't ask lucene for documents outside valid docId range.