Information Algebras: Generic Structures For Inference (Discrete Mathematics and Theoretical Computer Science)