Pass `SpecsValueTypeDerive` incorrectly reports path for `enum` key
Example of the current error:
```yaml
# enum_unknown_inst_value.ksy: /instances/should_fail/enum:
# 	error: unable to find enum 'animal', searching from enum_unknown_inst_value
#
meta:
  id: enum_unknown_inst_value
instances:
  should_fail:
    value: 1
    enum: animal
```
```
[info] - enum_unknown_inst_value *** FAILED ***
[info]   [enum_unknown_inst_value.ksy: /instances/should_fail/value:
[info]          error: unable to find enum 'animal', searching from enum_unknown_inst_value
[info]   ]
[info]     did not equal
[info]   [enum_unknown_inst_value.ksy: /instances/should_fail/enum:
[info]          error: unable to find enum 'animal', searching from enum_unknown_inst_value
[info]   ] (SimpleMatchers.scala:34)
```
(error reported at path `.../value` instead of the correct path `.../enum`)

This error is generated by pass `SpecsValueTypeDerive` which calculates the type of value instance (i. e. expression in the `value` field). The reason, why `enum` key influences this pass is because handling of this key implemented as artificial change of the `value` expression by [wrapping](https://github.com/kaitai-io/kaitai_struct_compiler/blob/542b24124a95f5308df625d667f8776dd023c696/shared/src/main/scala/io/kaitai/struct/format/InstanceSpec.scala#L59-L65) it by the `Ast.expr.EnumById` node.

Then `TypeDetector` tries to [calculate](https://github.com/kaitai-io/kaitai_struct_compiler/blob/542b24124a95f5308df625d667f8776dd023c696/shared/src/main/scala/io/kaitai/struct/translators/TypeDetector.scala#L57-L60) type of this node using [`ClassTypeProvider.resolveEnum`](https://github.com/kaitai-io/kaitai_struct_compiler/blob/542b24124a95f5308df625d667f8776dd023c696/shared/src/main/scala/io/kaitai/struct/ClassTypeProvider.scala#L93-L94) which throws an instance of `ExpressionError` due to unknown enum. When this exception [is caught](https://github.com/kaitai-io/kaitai_struct_compiler/blob/542b24124a95f5308df625d667f8776dd023c696/shared/src/main/scala/io/kaitai/struct/precompile/ValueTypesDeriver.scala#L37-L38), it is reported as error in `value` field.

Possible solution would to not use the `Ast.expr.EnumById` node, but handle convertion to enum somehow else. Another way is to throw different error when processing `Ast.expr.EnumById` or somehow else distinguish between throwned errors.