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.

I've only tested this on gcc 4.8.1, but it uses only functionality available in the standard library.