Add recipe for stm32flash.
Debugger: Handle DW_AT_external for DIEVariable.

- This attribute flag indicates if a variable is visible outside of
  its compilation unit. Needed in order to handle global variable
  lookups.
Debugger: Add model classes for expression representation.

- Add class ExpressionInfo to encapsulate the expression string and result type
  of a particular expression instance.

- Add class ExpressionValues to map expression result values correlating to a
  function, thread and expression for later use in highlighting changes.
Debugger: Add value node subclasses for expressions.

- Since expression value nodes need to be handled quite differently from
  other value nodes, and aren't specifically tied to variable object
  instances, create distinct implementing subclasses ExpressionValueNode{Child}
  to represent them.
Debugger: Add expression-related model classes to build.
Debugger: Add type subclass for artificial types.

- For expressions we need a Type object to represent their result
  type. However, this doesn't need to map to an actual DwarfType,
  as we won't need e.g. location and storage format information to
  read it out of the target team, so instead derive a simple subclass
  representing the appropriate result type.
Debugger: Add ExpressionValues to VariablesViewState.

- VariablesViewState is now able to optionally store previous values
  for expression nodes.
Debugger: Add simple prompt window for adding expressions.

- Requests an expression + type from the user for use elsewhere.
  Intended to be used by VariablesView and possibly others.
Debugger: Add some type utility functions.

Add helper function for converting a type code to a type name.
Debugger: Cleanup.

Refactor the expression windows to use the type code helper to simplify
building the type menus.
Debugger: Add expression prompt window handling.

TeamWindow now handles the messages for summoning/dismissing
the expression prompt window.
Debugger: Implement first part of #11387.

VariablesView:
- The view now keeps a mapping of a list of expressions associated
  with functions.
- Add actions for adding/removing expressions to variables context menu.
- When setting up to show a new stack frame, also add corresponding expression
  nodes and request their evaluation.
- Extend VariablesView::Listener interface to also encompass expression
  evaluation requests.
- Don't add context actions for expression nodes.

TeamWindow:
- Implement VariablesView::Listener expression evaluation hook and forward
  responses along.
Debugger: Save/restore expression node values.

- This allows expression results to be highlighted for value changes
  as we already do for regular variable values.