tests updated. 
Do we really need to make it working with nodes without ID? All the sections/views we want to lazyload in our current code have their ids so I don't think it's a problem for now. Maybe you have some idea on what to store in 'loaded' object if not ID? That was the easiest way to remember which nods were loaded before. InCostControl (and probably in settings) we use 'hidden' attribute for that, but I don't think lazyloader should mess with DOM.