Fix Issue #32

Refactored it a bit. A call to connect will now repeatedly attempt to
connect before raising an exception. Execution does not leave the
connect() function while this is occuring (rather than the previous
connect()->run()->connect()->...). Modified the config file and config
parse to make the time between reconnect attempts and the number of
reconnect attempts configurable.