Time::before(),Time::after()などに日付文字列が渡された際、その基準時刻をTime::set()で設定された時刻にする

Timeクラスの各種メソッドは日付文字列を渡すことができますが、
この日付文字列が相対指定だった場合に、
Time::set()で指定された時間とは異なる時間を基準にしてしまうため、
バグの原因になることがあります。

たとえば、Time::before()関数に、その日の特定時刻の意味で「9:00:00」のような文字列を渡したい場合に、
これまでの実装では日またぎで問題が出る可能性があります。

対策としてbefore/afterの両メソッドのstrtotimeの第2引数をself::$timeに修正することを提案します。

また、各メソッドについてDocCommentを作成しました。