Ensure indexing by feature id is consistent throughout.

Changed the window lookup to used the dictionary based feature ids, and 
pulled out a bit of code to test and re-use for creating the feature id lookup.


FYI As per my chord spec change, the "real" priority would be to add that as another list entry (eg. `List(deprioritized, facts ++ oldfacts)`). Does that make sense?. As in each list entry _within_ the top list is a factset to be created (in order). What we have here at the moment is just one factset and there's no guarantee of priority.