Move book_list to ContactHandler, improve save loading.

modules.contacts.ContactHandler() now keeps track of all of its existing
instances.

Shell() no longer keeps track of the book_list due to the above changes,
this also means that i had to change all the references to
Shell.book_list to ContactHandler.book_list.

Added __getstate__ and __setstate__ methods for ContactHandler, now instances
add themselves back to the book_list.

Defined __len__() method for ContactHandler and GroupHolder which
returns the number of groups and contacts respectively.

Added do_stats() method for Shell() which prints out the number of
contacts and groups in the current address book.