Issue title: Uninterpreted constants in the dynamic interface
 Issue body: Here's a simple program that uses uninterpreted constants/functions constructed using `Data.SBV.Dynamic`:

```haskell
import Data.Data (Data)
import Data.SBV.Dynamic

data Color = Color
  deriving (Read, Data)

instance HasKind Color

ki = kindOf (0 38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5 Integer)
kc = kindOf Color

int   = svInteger ki
color = svUninterpreted kc "color" Nothing []
foo x = svUninterpreted ki "foo" Nothing [x]

main = proveWith z3 $ return $
  svEqual (foo color) (int 2)
```

I'm getting this error when trying to run it:

```
*** Exception: 
*** Data.SBV: Unexpected response from the solver, context: get-value:
***
***    Sent      : (get-value (foo))
***    Expected  : a function value
***    Received  : (error "line 22 column 12: invalid function application, missing arguments foo")
***
***    Executable: z3
***    Options   : -nw -in -smt2
***
***    Reason    : Solver returned an error: "line 22 column 12: invalid function application, missing arguments foo"
```

Is there something wrong with my program, or is the problem in SBV?
I'm not sure if I set the kinds correctly...
 Comments: 
 Comment 0: Works just fine for me:

```haskell
*Main> main
Falsifiable. Counter-example:
  foo 38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5 Color -> Integer
  foo _ = 0
```

I suspect your z3 version might be rather old. I'm using 4.8.5; which you can download a nightly copy from: https://github.com/Z3Prover/bin/tree/master/nightly

Give that a shot and let me know if it's still not working.


 Comment 1: Ah, indeed. I'll know to upgrade the prover if I run into a problem again. Thanks!
{'source': 'GithubIssues', 'repo_name_with_owner': 'LeventErkok/sbv', 'issue_id': 432456484, 'repo_stars': 493.0}