* Conform `std::iterator_traits<fmt::appender>` to [iterator.traits]/1
> In addition, the types
> ```c++
> iterator_traits<I>::pointer
> iterator_traits<I>::reference
> ```
> shall be defined as the iterator’s pointer and reference types; that is, for an iterator object `a` of class type, the same type as `decltype(a.operator->())` and `decltype(*a)`, respectively. The type `iterator_traits<I>::pointer` shall be void for an iterator of class type `I` that does not support `operator->`. Additionally, in the case of an output iterator, the types
> ```c++
> iterator_traits<I>::value_type
> iterator_traits<I>::difference_type
> iterator_traits<I>::reference
> ```
> may be defined as `void`.
* Remove unnecessary member types from basic_appender
This reverts commit 1accf6c0a043fb445cbbfeefdbc1f91a08e3099f.
* Address clang-format issue
* Mark some in-class defined member functions as explicitly inline/constexpr, to avoid missing external symbols when using fmt module with shared build due to modules not defaulting to implicit inline.
* Switch constexpr to inline for context::arg(string_view).
NOTE: Looks as if basic_format_args::get(string_view) could probably be made constexpr instead, but sticking with minimal change approach.
* Work around apparent non-conformance of older MSVC compilers.
* Switch format_int::str() from constexpr to inline to satisfy libstdc++ std::string constexpr limitations.
* Replace usages of macros for constexpr/inline with keywords.
* Fix for locations requiring C++14 constexpr.
* Further minor constexpr tweaks.
* Apply clang format
* Fix conversion warning on chrono.h
warning: conversion from 'time_t' {aka 'long long int'} to 'long int' may change value [-Wconversion]
* Changing write_utc_offset to accept a long long instead of the static_cast as requested..