I'm probably missing something, but I think this is wrong or at least incomplete.

Suppose the `rhs_` is a "constant" as introduced by this change-set such that `rhs_.jac_.empty()` is true.  Then, the above line ends up invoking
```c++
template <typename Scalar>
AutoDiffBlock<Scalar> operator+(const typename AutoDiffBlock<Scalar>::V& lhs,
                                const AutoDiffBlock<Scalar>& rhs)
{
    return AutoDiffBlock<Scalar>::constant(lhs, rhs.blockPattern()) + rhs;
}
```
which, as far as I can tell, will just end up in an infinite loop.  What am I missing?