Linux support added

Also, a README.

I have also refactored the code a bit to fit the linux bits. Whilst I wouldn't have used a class-based approach to writing this script, I tried to conform as best as possible to it.