Implemented components of the entity system.

Internally uses boost::object_pool to allocate entities in a cache-friendly
manner.

To create a component for use by the Trillek entity system, it MUST derive from
the component class, and MUST implement the public static function const char *
component_name().

For example:
  class position : public trillek::component<position> {
  public:
      static const char * component_name() { return "position"; }
      int x, y, z;
  }

At the moment the overhead of the base class is 12 bytes.
Keeping with the above example, to use the pool allocator, simply call:
  new position();

And it will automatically use the pool allocator. Calling delete on the pointer will call the correct free function.

To refer to any possible component, use the `base_component` class as a pointer
/ reference.
Fixed function brace positions to conform with trillek style guide in component.hpp.
Fixed line wrap formatting issue in component test suite.