Clean up DynFlags initialization

Instead of mixing the initialization of various `DynFlags` members in `modifyFlagsWithOpts` and `modifyFlags` I added a function to set the options independently and call those from the new function `initDynFlags`. `initializeFlags` now calls `initDynFlags` and sets up logging as that didn't quite fit in with the way `initDynFlags` sets all the other options as `setLogging` is an IO action whereas the other functions are pure.

I also removed `initializeFlags` as nothing uses it and I couldn't find a nice way of making `initializeFlagsWithCradle` use `initializeFlags` as it's basis (as the matching prefix would suggest). (@kazu-yamamoto if you think I shouldn't remove it I can just add it back.)