Returning existing instances rather than raising exception when the same multimethod name is reused.
Added module-based namespacing.
Reverted to % operator instead of str.format for Python 2.5 compatibility.
Added overriding of namespaces.
Cleanup.
Requiring namespace to be specified.
Merged in namespacing branch.
Merge remote-tracking branch 'refs/remotes/exupero/master'

Conflicts:
	multimethods.py
	tests.py
Make it work more like Clojure's defmulti.

* Add prefer to resolve ambiguous dispatches
* match clojure's isa? behavior - check all dispatch values ancestors
  for matches also.  This changes the performance characteristic to O(n)
  instead of O(1), but since there usually aren't a large number of
  dispatch values to check, it should be ok.
** The isa? behavior also matches clojure in that it works with tuples
   by calling isa on all the corresponding elements.  So you can do type
   dispatch on multiple arguments.
* cleaned up naming and decorators
* Dispatches no longer stored as class-level field, meaning you can now
  wipe out your multimethod's dispatches by reloading the module where
  your multimethod is defined.  However this also matches clojure's
  behavior.  I think this is better because previously, if you reload
  the multimethods module it wipes out ALL multimethods in the entire
  system..
* still not thread safe
* still does not do any caching like clojure's does.
* updated readme