[B+C] Add method for getting target blocks using HashSet<Material> as opposed to HashSet<Byte> for transparent types

Issue:
With magic values deprecated, there's no way to currently get a LivingEntity's target block or blocks in line of sight without making your own method to do so.

Justification:
This makes it so instead of writing out a method yourself to get a target block or line of sight to avoid using deprecated methods, you can call it as before, albeit using HashSet<Material> as opposed to HashSet<Byte>, and hence no magic values.

PR Breakdown:

This PR adds methods to get target blocks using HashSet<Material> for transparent blocks

CraftBukkit PR:



JIRA Ticket:

JIRA Ticket #4799