Make dump print `const` before const fields (#53492)
This provides more information to the user when dumping types, and also
makes the output of dump slightly more similar to the type definition
syntax.
EDIT: This has been changed to print:
* The kind of type before the type name `abstract type`, `mutable
struct`, etc.
* `const` only for `const` fields of `mutable struct`
New behaviour
```
julia> dump(Float32)
primitive type Float32 <: AbstractFloat
julia> dump(Signed)
abstract type Signed <: Integer
julia> dump(Pair{Int, String})
struct Pair{Int64, String} <: Any
first::Int64
second::String
julia> dump(BitSet)
mutable struct BitSet <: AbstractSet{Int64}
const bits::Vector{UInt64}
offset::Int64
julia> dump(Set)
UnionAll
var: TypeVar
name: Symbol T
lb: Union{}
ub: abstract type Any
body: struct Set{T} <: AbstractSet{T}
dict::Dict{T, Nothing}
```
---------
Co-authored-by: Shuhei Kadowaki <aviatesk@gmail.com>