Create the base interfaces for Entities

Introduces a generalized format for Entity implementation. Currently in Trident, there is a small amount of design towards Entities, therefor I decided to PR a generalized design that can be modified and edited by the Trident team. The design is as follows:

Details:

- Base interfaces for Entities
- Enum representation of various "types" for Entities
- Various "Property" classes to represent where an Entity will have extra properties that can vary
- Mock Classes used to show usages and not actual implementation

This also introduces some other potential API occurrences:

- Villager Trading API
- Spawner API (through the use of the EntityProperties)
- Minecart Tile API

All of these were not present in previously used APIs in Minecraft and would be a useful API that would be planned out in the future

There are things that are marked as "TODO" due to the fact that there is still a lack of some API involving BlockStates and other things such as Dye Coloring, they are as followed:

- BlockState todos
- DyeColor todos
- Horse variant todos
- Anything not mentioned may be commented about and can be explained in detail

There are also many introduced concepts, nothing should be taken as "final", and the code can be subject to change at any time, this may include:

- "Property"-based interfaces
- ArmorStand-bases features (currently includes a deprecated api for parts)
- Any additional API that was introduced as a caused of this (Trade, Minecart, Spawner)

Note, the code is not Javadoc'd and commented as best as it can, thus may be required to be proofread by others and given input on such.

If you have a problem with something, just comment on the PR and I will comment on it