Clean up failure cases in wq_task_specify_* 

1. Add descriptive messages on cause of failure.
2. Fail if two inputs have same remote name but different local names. And if there is an output with same remote name.
3. Fail if two outputs have same local name but different remote names. And if there is an input with same remote name.

@btovar