Stop FitBit synclets if self/devices never sync

If something went wrong with `self` or `devices`, the rest of the FitBit
synclets would reenqueue themselves forever waiting for the data they need.
Now, they'll try again in 30 then 300 seconds, and if there's still nothing,
they'll start throwing errors.

In order to return the error from the `pather` function, we need to check for
it in `genericSync`. If it gets a `string` back, we use it as the path.
Anything else is considered an error. This feels sort of gross, but it was
simplest and avoids throwing exceptions.

cc @jparkrr