General exception with an optional string, map, or Keyword list stored in exception details
@type t() :: %ExKits.Utils.Exception{ __exception__: true, details: any(), message: String.t() | nil }
@spec new(String.t() | nil, any()) :: t()