Moved documentation out of class definition

Inline documentation is in general needlessly verbose and only makes it
harder to read the actual class API. This change moves this kind of
documentation to the function implementation for the 'Entity' class.

For inline methods, the implementation is moved outside of the class
using the 'inline' keyword. This provides a good place to put the
documentation, but it also further cleans up the class definition.

The class definition now gives a much better overview over its API. And
if needed, details can be looked up at the function implementations.

Reviewed-by: Erik Schilling