Efficient Rewriting Algorithms for Preference Queries