re-works the context a bit

Now, that a new context is created for each call of serialize/deserialize, this commit
makes the API a bit more convenient for fluent modification. For example, instead of

    $context->setExclusionStrategy(new DisjunctExclusionStrategy(array(
        new VersionExclusionStrategy($version),
        new GroupsExclusionStrategy(array('Foo', 'Bar')),
    )));

you can now simply write

    $context->setVersion($version)->setGroups(array('Foo', 'Bar'));