Manifest type recognition

-Added manifest to type.
-shows error if the type parameter can't be infered (i.e. there are two
or more types with manifests in the context).
-Recognizes value types using the manifest and branches into diferent
code execution. For now all branches execute the original code.