SI-5103 Another swing at singleton type inference

Use a TypeVar to propagate the Singleton bound through to
the typechecking of the argument, rather than a `BoundedWildcardType`.

Checking in again with `pos` reveals breakage around typetags and
manifests, among others.

```
test/partest --update-check \
  /Users/jason/code/scala/test/files/pos/annotated-treecopy \
  /Users/jason/code/scala/test/files/pos/macro-implicit-invalidate-on-error.scala \
  /Users/jason/code/scala/test/files/pos/manifest1-new.scala \
  /Users/jason/code/scala/test/files/pos/nothing_manifest_disambig-new.scala \
  /Users/jason/code/scala/test/files/pos/nothing_manifest_disambig-old.scala \
  /Users/jason/code/scala/test/files/pos/t4501.scala \
  /Users/jason/code/scala/test/files/pos/t5022.scala \
  /Users/jason/code/scala/test/files/pos/t7190.scala \
  /Users/jason/code/scala/test/files/pos/t7516 \
  /Users/jason/code/scala/test/files/pos/t7649.scala \
  /Users/jason/code/scala/test/files/pos/t7818.scala
  ````