Check if Proc has a block before using it.

The arity check for lambda mode uses the block... the check for whether there
is a block should come first.
Use CompiledCode's name in Proc argument errors.
Use CompiledCode's name in BlockEnvironment argument errors.
Merge pull request #2169 from tsion/proc-argument-error

Use CompiledCode name in Proc/BlockEnvironment ArgumentErrors