Ensure that destructor's needed by lldb make it into binary in non-inlined fashion
What does this implement/fix?
When paused at a breakpoint in lldb -- attempting to evaluate an expression that calls a method which returns an Eigen::MatrixXd fails with a missing symbol error.
(lldb) po method_that_returns_an_eigen()
error: Couldn't look up symbols:
Eigen::MatrixBase<Eigen::Matrix<double, -1, 1, 0, -1, 1>>::~MatrixBase()
The issue appears to be that since the destructor's are defined by via ~MatrixBase() = default -- that they are always inlined.
I am not certain why lldb needs access to the symbol .. but seems to require it (for me).
This PR adds an explicit empty destructor to the parent of MatrixBase -- this induces the child classes to include the symbol as well even though they are defined with ~MatrixBase() = default