be a little ‘smarter’ about text encodings

- the exec statement freaks out if you pass it unicode that has an
`encoding: ???` comment in it. now, rather than turning it back into a
bytestring, we just elide the comment before compiling
- the Text object now assumes bytestrings passed to text() are utf-8
encoded. so (ideally) this means you don’t need to prefix high-ascii
strings with ‘u’ anymore (but i’m still waiting for another shoe to
drop)
var() fixes

- the repr was bombing for non-numeric types
- the panel wasn’t getting displayed in non-anims
always use the system python interpreter

- the `python` binaries created by virtualenv can’t access the
windowserver, so insist on /usr/bin/python just to be safe
syntax updates
typecasting

- range() really hates floats
cut down on the redundant welcoming
better image export labeling

- the file-format popup now has another subsection
arcto now uses the same arg ordering as curveto

- if two sets of coords are provided, the first defines the control
handle and the second the destination point
- if only a single point is specified, draw a semicircle
simplified transform()

- ditched support for `inline transform’ args (which isn’t really a
feature anyway since the individual transform-commands are all context
managers now)
don't reinvent the arc()
made font() selection more forgiving

- for nodebox compat, accept both `postscript names’ and `display names’
- the fammy() predicate was raising exceptions rather than returning
False
- lighter/heavier kwargs are no longer supported
text() now takes a `font` kwarg

- it can be a string or a tuple with fam/weight/size values; the same
as the positional args for font()
fixed .offset calculation for empty strings
hide internal stacktraces in dist builds
added some validation to font()

- unknown weight & width names now have useful error messages
removed encoding magic from stacktraces

- it was a foolhardy impulse in the first place…