Durandal compatibility fixes

Durandal is a AMD-based Single Page Application (SPA) framework.  In order to implement some of its features, it hooks into the Require.JS pipeline and adds a `__moduleId__` property to every module after it's loaded, so that it  can look up the AMD module ID later given an object.

A few places in Cesium crash after these extra properties are added, because they iterate over the properties of a module directly.  By refactoring `ScreenSpaceEventHandler` this iteration was not needed.  I was able to refactor AutomaticUniforms and add a simple check to make it ignore unexpected properties.