Allow processors to determine their own eligiblity

I didn't like how the Processor methods were using
an empty string return value to imply their eligiblity.

I also didn't like how Runner's #as_array method kept assigning
val repeatedly and shovling it into output at the end.

By adding #processable? to the interface, the runner
can determine the eligible processors which leads to
a much better readablity.