moved `interact` command into separate module

much cleaner this way (no more inline classes!), and also more explicit
WRT variable context (i.e. `locals()`)

NB: This required turning `commands` into a package rather than a
module - however, due to Python being awesome, the API remains the same.
renamed interact's entry point

`main` actually means something else
moved interact's termination handling into command

seems better encapsulated there
Merge pull request #54 from FND/interact

moved `interact` command into separate module
wiki_post no longer relevant
Connection and improve handling of _canonical_uri field

If a tiddler has a field named _canonical_uri that field's
value is used when creating tiddler_url. In the past two things
were wrong with this:

* that url was not encoded to utf-8: field values are unicode
* that url was only used when presenting a tiddler collection
  when asking for the tiddler itself directly, you'd get an
  empty tiddler

Both are fixed.

Now, if you ask for a tiddler with a _canonical_uri field
in anything but "Accept: application/json" the response
will 302 to _canonical_uri.

This allows the original desired impact, which is to be
able to have meta tiddlers that point to binary content
elsewhere. See this thread:

  http://groups.google.com/group/tiddlyspace/browse_frm/thread/66792d8989139afd

I guess I just forgot to finish it.
Move POSTing of tiddler chronicle to own module

Few different reasons for this:

0. It looked out of place while browsing the code for other stuff
1. I hate this feature and want it to stick out sore thumbwise
2. As it is bag only, it doesn't need _determine_tiddler
3. It drove some tidying up in handler:tiddler

That tidying includes changing the way in which imports
from tiddlyweb.web.util are handled, making them more
explicity and moving bag constraint checking to tiddlyweb.web.util
Avoid a rare case when content may be decoded twice

It's possible to create a serializer that has no
'as_tiddler' method. When such a thing happens and
a tiddler is PUT, there are circumstance where the
code would be decoded once to test to see if the
serialization can make a tiddler, and then again
when it is processing a psuedo binary tiddler.

Now, we break the abstraction slightly. This is
a hack just as the previous code was a hack, but
this hack is less costly.
import missing http codes
Some cleanups in handler/tiddler

* use a constant where _canonical_uri is used
* don't return revision from _check_validate_tiddler, not needed
  and wrong

The value on tiddler.revision at that point is the value of
what is currently in the store not the current new tiddler,
and when we PUT the tiddler it will be set to whatever the
store says it should be. From the store's perspective the
incoming revision is not important, this is just some tiddler
to be put.
docstring fixes in text store
release 1.3.3
Use a JSON mime type to fall through canonical uri handling

Not serializer type. Otherwise things like twp.jsonp, which
replaces the json serializer, will make it so things don't
work.

(On the fly fix deployed to tiddyspace.com, where jsonp is being
used)
fixed typo
added LABELs to cookie challenger's form
replaced PRE wrapper around cookie challenger's form

not sure what that was meant for in the first place - now simply using a
P around the error message
fixed whitespace
removed presentational attributes from cookie challenger's form

this should be handled via CSS
Merge pull request #56 from FND/challenge_form

improved cookie challenger's form
release 1.3.4