Implement generic torrent data structures
Squashed commit of the following:

commit 6f5f706213c1b266e79d289f42e767b4326bb881
Author: Kannibal Ox <kannibalox@gmail.com>
Date:   Mon Sep 22 17:53:26 2014 +0100

    Update deluge to use new field names

commit 682806005a482826028039fd46af3af7b792c590
Author: Kannibal Ox <kannibalox@gmail.com>
Date:   Mon Sep 22 16:45:35 2014 +0100

    Remove superfluous dictionary in favor of straight array

commit cc73b768f5aab5f969dad6c0402cdefbc1081ae2
Author: Kannibal Ox <kannibalox@gmail.com>
Date:   Mon Sep 22 15:58:40 2014 +0100

    Name changes

commit 15abe17d5e5c11a8230b287cda536ea267e5b7e3
Author: Kannibal Ox <kannibalox@gmail.com>
Date:   Fri Sep 19 19:11:54 2014 +0100

    Start adapting rtorrent to new structures

commit de8773ef6a93db914dec1de56fa2e5c29d250a71
Author: Kannibal Ox <kannibalox@gmail.com>
Date:   Fri Sep 19 19:11:30 2014 +0100

    Add the rest of the structures

commit 974e04ae54819a622419b0132ab96eb0a9b4b44a
Author: Kannibal Ox <kannibalox@gmail.com>
Date:   Fri Sep 19 17:01:22 2014 +0100

    Add base client struct class, and peer struct