Feature/ss cmd timeout

* added timeout  for external command execution


@jtsoi @vs-ab please take a look 
I disagree, this is the coding standard described in Python literature.

Looking closely in the link, the sentence continues:

> [...] e.g. when testing whether a variable or argument that defaults to None was set to some other value. The other value might have a type (such as a container) that could be false in a boolean context!

More info on what's `False` in Python: http://stackoverflow.com/a/1452500