message: add before radd
  Summary:
  When calling `a + b`
  * call `a.add(b)` first
  * if it returns `None`, call `b.radd(a)`
  This is more natural way to implement addition.
diff: @@ -552,9 +552,9 @@ impl<'v> Value<'v> {
  }
  }
  - if let Some(v) = other.get_ref().radd(self, heap) {
  + if let Some(v) = self.get_ref().add(other, heap) {
  v
  - } else if let Some(v) = self.get_ref().add(other, heap) {
  + } else if let Some(v) = other.get_ref().radd(self, heap) {
  v
  } else {
  ValueError::unsupported_owned(self.get_type(), "+", Some(other.get_type()))
  