Bug 270989 Context refactoring
Based on discussions over the past weeks, I'm doing a refactoring of the context API. Major changes: - Renamed IComputedValue to IContextFunction - Renamed *Value to *Function - Renamed UIContextScheduler to UISchedulerStrategy - Added concept of ILookupStrategy to delegate lookup of keys that are not yet defined in a given context - Re-implemented OSGi service support using lookup strategy I also fixed a couple of NPE's I found while testing with the e4 photo demo (null realms, etc)
bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/WBPartFactory.java
newWidget = wbwShell;
			bindWidget(part, newWidget);
			
			final IHandlerService hs = new PartHandlerService(part);
			IEclipseContext localContext = EclipseContextFactory.create(
					parentContext, UIContextScheduler.instance);
			localContext
					.set(IContextConstants.DEBUG_STRING, "MWorkbenchWindow"); 
			part.setContext(localContext);
			localContext.set(IHandlerService.class.getName(), hs);
			parentContext.set(IServiceConstants.ACTIVE_CHILD, localContext);
			localContext.set(MWindow.class.getName(), part);
			
			localContext.set(Shell.class.getName(), wbwShell);
			if (part instanceof MWorkbenchWindow) {
				
				
				localContext.set(MWorkbenchWindow.class.getName(), part);
			} else {
				wbwShell.setLayout(new FillLayout());
			}
			if (((MWindow<?>) part).getName() != null)
				wbwShell.setText(((MWindow<?>) part).getName());
		} else {
			newWidget = null;
		}
		return newWidget;
	}
	@Override
	public void hookControllerLogic(MPart<?> me) {