What is the difference between the register() and boot() methods in Laravel's ServiceProvider, and how can they be used in what scenarios?