prototype CaseMap objects

It would be convenient to be able to hand off casemaps to Channel objects, but
pretty memory-intensive to store a string for each one. Instead provide a
CaseMap flyweight that caches little stringifying scalar-type objects for each
casemap; objects can hang on to a reference to a ValidCaseMapObject coercible
from a ValidCaseMap instead of a string. Hopefully slightly cheaper.

	new file:   lib/IRC/Server/Toolkit/CaseMap.pm
	modified:   lib/IRC/Server/Toolkit/Collection/Users.pm
	modified:   lib/IRC/Server/Toolkit/Types.pm
	modified:   t/types.t
Fix CaseMap objs, add casemap/_casemap to Channel

	modified:   lib/IRC/Server/Toolkit/CaseMap.pm
	modified:   lib/IRC/Server/Toolkit/Channel.pm
add basic CaseMaps test

	new file:   t/casemap.t
dist.ini prereq list cleanups
Collection::Channels->casemap should be a ValidCaseMapObject

	modified:   lib/IRC/Server/Toolkit/Collection/Channels.pm
Channel should pass ->casemap to Lists if not rfc1459

	modified:   lib/IRC/Server/Toolkit/Channel.pm
Factor out lightweight casemap attrib handler to Role

	modified:   lib/IRC/Server/Toolkit/Channel.pm
	new file:   lib/IRC/Server/Toolkit/Role/DefaultCaseMap.pm
Add Role::CaseMappedList & initial Channel::List::Bans

	modified:   lib/IRC/Server/Toolkit/Channel.pm
	modified:   lib/IRC/Server/Toolkit/Channel/List/Bans.pm
	new file:   lib/IRC/Server/Toolkit/Role/CaseMappedList.pm
initial Channel::List::Invites

	modified:   lib/IRC/Server/Toolkit/Channel/List/Invites.pm
List::Bans should deal only in normalized_masks

	modified:   lib/IRC/Server/Toolkit/Channel/List/Bans.pm
CaseMappedLists can access ->values, ->kv

	modified:   lib/IRC/Server/Toolkit/Role/CaseMappedList.pm
finish up List::Invites, related cleanups

	modified:   lib/IRC/Server/Toolkit/Channel/List/Bans.pm
	modified:   lib/IRC/Server/Toolkit/Channel/List/Invites.pm
DefaultCaseMap can set_casemap, but clear if eq rfc1459

	modified:   lib/IRC/Server/Toolkit/Role/DefaultCaseMap.pm
Types; ChannelListObject

	modified:   lib/IRC/Server/Toolkit/Types.pm
Channels->create_and_add, sanity-check casemaps when adding
Merge branch 'casemaps'

* casemaps:
  Channels->create_and_add, sanity-check casemaps when adding
  Types; ChannelListObject
  DefaultCaseMap can set_casemap, but clear if eq rfc1459
  finish up List::Invites, related cleanups
  CaseMappedLists can access ->values, ->kv
  List::Bans should deal only in normalized_masks
  initial Channel::List::Invites
  Add Role::CaseMappedList & initial Channel::List::Bans
  Factor out lightweight casemap attrib handler to Role
  Channel should pass ->casemap to Lists if not rfc1459
  Collection::Channels->casemap should be a ValidCaseMapObject
  dist.ini prereq list cleanups
  add basic CaseMaps test
  Fix CaseMap objs, add casemap/_casemap to Channel
  prototype CaseMap objects