extend keepAlive to take an optional time period

This allows `keepAlive` to take an optional parameter to configure the interval (default is still 30 seconds).

Test coverage has been added.

README documentation has been updated.

I've also updated the README's test coverage statistics, which have now hit 100% of functions tested!

```
=============================== Coverage summary ===============================
Statements   : 92.23% ( 285/309 )
Branches     : 77.84% ( 130/167 )
Functions    : 100% ( 69/69 )
Lines        : 95.53% ( 278/291 )
================================================================================
```