efficient iterator w/ inlining

Proposed approximate fix for issue 3147 (Not appropriate for immediate use - see below for outstanding issues)
Allows full inlining, and gets around the generic types problem with
iterators in haxe (and especially C#) even when not inlined.
Unfortunately, currently incompatible with @:coreApi specifier, even
though it should work. When you add @:coreApi, it complains that it's incompatible with the Iterator type, even though it structurally unifies to it.
Another issue is that @:allow does not appear to work properly at all within file cs/_std/haxe/ds/StringMap.hx, even though it works fine in normal compiled .hx files outside of the core library directory. So for now I've put the members needed by the iterator as public.