Add rudimentary support for Android and B2G

The Android version of libc does not support `posix_spawn`, which means Android & B2G cannot use the Linux version of subprocess. I added some rudimentary support for Android by using `popen` and `fileno` and then passing it to the worker. It only supports stdout at the moment by the way. But I guess all of Linux module could be replaced by this approach once it would be complete.

Let me know what you think.