Restore stream format state after using month_formatter::format_month

`date_time::month_formatter` alters the format state of an output stream that is passed in by changing the `width` and `fill` characters but never restores them. This can result in unexpected output when using this function.

Save the old `width` and `fill` character and restore them, effectively putting the stream back to its original format state before returning