The structure of a code runner
the code runner plugin will be improved, and the structure of a runner will be changed too. currently it is:

1. a `String`, will be run directly
2. a `List` with two items, the first one is a dict,
3. a `Dict`.

```
{
   'exe'  :  string or function
   'opt' : list,
   'targetopt' : the target option,
   'usestdin' : true or false
}
```