[x] Library.truncate(count, count_type_is_chunk) (thing I just noted that is relevant to #33 is that truncated chunks will have a different ID than their canonical. Maybe have a full_text, often omitted, and a text, and the hash is actually based on the full_text?)
[x] Library.omit removing extra fields for all chunks
[x] Simplify library.query() to use these provisions
[x] Get library.new_query() to work (currently it just returns the first chunk of content)
[x] Remove the old query() and replace it with new_query() implementation.
[ ] Fix the TODO about sorting in delete_chunk.
[x] Make inserting a single item be an insertion not a resort.
[x] Refactor a lot of things like get_context_for_library and get_chunk_infos_for_library (also tracked by #14)
[x] Remove library.similarity or rename once we don't need a dict of them?
Factor out the main behaviors: