Allows interfaces to specify a default implementation.
 
 Note that the default can be overridden after the fact
 by explicitly binding a different implementation to the
 interface.
 
 For "normal" injections of a given library, this reduces
 the amount of boilerplate configuration code needed,
 and also shrinks the Tang configuration objects that
 need to be passed around.