Adds a common component to share between runners, the IceRunner.

IceRunner should take care of all the pieces of 'running' Ice that don't fall into a system specific category. For example, the functionality of setting up the base Configuration object with all the backing stores should exist in IceRunner because that functionality is needed whether it is run in Qt or in the CLI. On the other hand, parsing the contents of argv for any useful configuration is completely unnecessary when running from Qt, so that should be in the CommandLineRunner.