Move State initialization to ctor
Refactor Program::colorcodepackages()

Instead of packing / unpacking the initial default attribute,
create an overridden version. Additionally, use the simpler C++11 for
loop.
Reduce type and header visibility

We've previously been very careless about this.
Pass strings by const reference
Do not pass config as shared pointer

This has the additional positive effect of getting rid of the final
boost shared_ptr usages.
Further C++11 style for loops