Fixes and closes #14 by using apply and POSIXct and ifelse

Lines 18-21 and 43-45 are the key changes that fix the lack of vectorization in this function. It's worth noting that `as.POSIXlt`, which is used for the convenience of grabbing internal elements like `date$yday`, is poorly recognized by the `*apply` functions. This is because `as.POSIXlt` is fundamentally a list which confuses the hell out of `*apply`. For now, I am converting to `as.POSIXct` in place for the use of `mapply`. It may be worth exploring using `as.POSIXct` through the function or having a dependency of `lubridate`, which supplies generic functions to extract much of what I am using `POSIXlt` for right now.

The remaining fixes are largely bug fixes on how I handle vector elements that were missed because they were hidden by the error fixed in 18-21 and 43-45.