change datatype and algorithm for an entity's component-signature

it now uses sets and set_difference for comparison, instead of vectors and
unnecessary iteration
add functions to EntityManager to add/remove components from an entity