Chunk lists

There are LOTS of superficial changes here and a few core ones.  The biggest:

1. chunks are now moved into packs and are thus part of the API
2. argument handling is simplified in #initialize for both Content and chunk classes.  The logic is something like this: Chunk has Content object, Content has Format object, Format has Card object.  Card stands alone, Card stands alone, high ho the dairy-oh, Card stands alone.
3. You can now register a given "chunk_list", meaning an ordered list of chunk types to process.
4. Card#chunk_list determines which list a card will use.  So a given card always uses the same list, but you can specify different lists for different sets.