LOGIC-126: bad fd/* fd/+ from StackOverflow

The issue is that it's possible for a var to have both a value and
domain. Previously get-dom *always* returned the domain, this
permitted an the undesirable situation that constraints checked against
the domain and not the actual value.

Now the fundamental get-dom always return the value if the var has one
over the domain (it continues to return nil in the unfound case, which
will likely change). After auditing the fd code it's clear that the
primary use of get-dom was the desire to get the actual value or the
domain. The only place where we don't do this is domc. domc has to
reach into the implementation. This is OK for now, I'd like to see
how CLP(Set) and other constraint domains play out.

We tweaked resolve-storable-dom in the singleton case. We only run
constraints if the var doesn't have a binding (we wouldn't have made
it this far if it had). This prevents I believe the bad behavior we
seen in the past when flipping walk/get-dom in let-dom.

let-dom now just uses get-dom, no separate walk. Added note in
distintc why we need both get-dom and walk there.

Overall we're getting closer, but I think further simplifications and
improvment can be made.
0.8.3