Add a global timeout feature

These commits wrap the system call to princexml in a timeout block with some handy features.  If a timeout occurs this will attempt to kill the underlying princexml process running on the machine.  

This is in response to https://github.com/mbleigh/princely/issues/32

Of course, please let me know if there's something you'd have done differently and we can change it.  Also we are currently using this feature on our production stack with no issues.  

Thanks!