Added constant support; updated CompletionData

CompletionData and its subclasses are all IWithSourceObject, and their
constructors support null parameters for appropriate values now.