working on #61; make the returns of .GetEnumerator for dynamic objects *also* dynamic; things can get a little dicy otherwise
more work on #61; 'foreach' likes to insert a convert, so let's make sure we don't loose our magic dynamic behavior if that happens
a little cleanup, a little uniformity; fixes #61