Improved prioritization in FormatService

In the DefaultFormatService implementation, Formats are now sorted
immediately via Collections.sort, instead of being stored in any order
and always re-sorting them whenever queried.

To take advantage of this, the getFormat and getFormatList methods have
been refactored, removing PriorityQueue usage, and adding a "greedy"
parameter so that early termination can be requested (e.g. as soon as a
match is found).