Better type & delegate printing

Prints the names of delegates in a better way, and handles generic types along with 'bool' and 'void':

	foo(x)
	|   '
	|   delegate Action<string>, type: void (string)
	delegate Func<Action<string>, bool>, type: bool (Action<string>)