Fix isComposite with empty glyphs

Was broken in 626107c8.
Add support for dumping XMLs to the standard output.
[subset] Fix order of chain for consistency

I'm confident I haven't broken anything.
[subset] Handle case of None ChainContext class with non-zero chain

It would be a font bug, but handle regardless.
[subset] Handle None ChainContext

Fixes https://github.com/behdad/fonttools/issues/134
[merge] Support Extension lookups
[merge] Add preliminary support for BASE table
[cffLib] Packing charset with only .notdef glyph fails

Fixes https://github.com/behdad/fonttools/issues/136
[merge] Fails if 'GSUB' table not present

Fixes https://github.com/behdad/fonttools/issues/135

Or does it?
[glyf] Align glyphs at word boundaries, not long

Saves two bytes per glyph on average.  Or as Roozbeh reports,
70kb in DroidSansFallbackFull.ttf.
[cmap] Remove bogus use of font.lazy

Ouch!
Make glyf-table glyph loading lazy by default

When I added the font.lazy setting, I made glyf table non-lazy
by default.  This is helpful to users who typically access glyphs
like:

	glyf_table.glyphs[glyfname]

instead of the correct way:

	glyf_table[glyfname]

and also forget to call expand() on the glyph.  However, this
significantly slows down most scripts that load the font without
lazy=True...  As such, add a third mode to laziness.  By default
lazy=None and does NOT expand glyphs.  If lazy=False is passed
in, all glyphs are loaded.

I hope this is an acceptable middle ground and not too confusing.
[py23] Minor refactoring
Minor debug output improvement
Only use two-byte offsets in loca table if all offsets are even

Otherwise it will mess up.
Add padding to glyphs only if it makes it possible to use short loca

Otherwise don't add padding.  This is against the spec, but "should"
work everywhere.  The spec only says offsets "should" be padded:

"""Note that the local offsets should be long-aligned, i.e., multiples
of 4. Offsets which are not long-aligned may seriously degrade
performance of some processors."""

We don't add any padded that we absolutely don't have to.  Should save
an average of one byte per glyph on large fonts.
Adjust previous commit
[glyf] Don't pad when removing hinting instructions

Finishes recent changes.
[subset] Work around OTS bug with FDSelect format 0

https://github.com/behdad/ots/commit/a049b98c8852078cf872e6d783ebf8205311bffc
https://github.com/khaledhosny/ots/pull/31

Fixes https://github.com/behdad/fonttools/issues/138
Turn assert into warning