(PUP-979) Fix unparenthesized calls with hash to not give strange error

Previously, an unparenthesized call followed by a hash would always
result in an error that the hash was a resource body without title.

The change now treats the resource body without title as an opportunity
to transform the expression into a hash (and subsequently into a 
call with a hash as an argument).

At the same time, the set of functions this is available for has been
reduced to realize, require, contain, include, and the logging functions
notice, info, warning, error, and the fail function.