Croutonclip: fix signal handling

`croutonclip` was broken on Arch (bash 4.3.24), and trusty, when using bash 4.3.11 (uncommon, as dash is the default), due to a change in signal handling in `read` (basically `read` would not get interrupted by signals...).

The first commit attempted to fix this, and worked well on Arch, but segfaulted on trusty/bash.

Ended-up refactoring the code (second commit), the result is, overall, a bit cleaner and simpler.

Tested on falco:
 - arch bash 4.3.24
 - trusty bash 4.3.11 / dash
 - precise bash 4.2.25 / dash (Xephyr)