Add Fire, Rotation. Document Health, Hunger, Position, Velocity, Level, Solid

components-system branch: Big thanks to @Zidane for starting components up
Documented some values with "value in {link org.spongepowered.api.math.Vector3i Vector3i}" due to the fact that new people may not be used to using Vector3i
> "Is My Entity an Enderman"?

Thats true, and a few people (including @IDragonfire and me) talked about this in IRC earlier today.

An entity is only defined by its components. But since they are very dynamic you cannot say "hey everybody with a health component is a hostile entity". I think that was the reason for you to introduce the TypeComponent (correct me if I'm wrong).

Since the entity CLASS should be final (makes no sense to have an interface for it) and the components that extend the base entitycomponent as well (Once again, I would vote for them being classes as well, since they only store values, and have nothing to do with the logic), there should be at least a RenderComponent, ModelComponent or a TypeComponent that define the type or the way to render the entity.

The type could be an integer, although I wouldn't really vote for that, since we want to be as dynamic as possible, right? Using an identifier-string once again would solve this problem.

Performance wise ... Well, if you would have to check each tick a bunch of strings instead of class hierarchy you definitely would loose some FPS. So what to do? We could either create components for each mob type (would work, but is kind of ugly), or solve the "too-much-checks" problem by using the hashcode of the string and saving it in an integer (or something like that), which would reduce the lookup time by quite something (I'm guessing).

Something like that could be looking like the following:

```java
public final class TypeComponent implements EntityComponent {
  private final int typeHash;
  private final String typeString;

  public TypeComponent(String typeString) {
    this.typeString = typeString;
    this.typeHash = typeString.hashCode();
  }

  public String getType() {
  }
}
```