Rename AwesomeRenderer to PangoMarkupRenderer

Awesome WM uses the Pango Text Attribute Markup Language
(http://developer.gnome.org/pango/stable/PangoMarkupFormat.html), and
since other applications and window managers may use the same markup
language it's better to have a common renderer for this markup language.
Pad powerline segments with no-break spaces

Some applications using Pango and/or Cairo draw square unknown character
glyphs next to divider glyphs instead of regular spaces. Non-breaking
spaces resolves this issue, and they are probably more correct to use
(no application should break lines at the padding spaces since they
"glue" the segment and dividers together as one unit).

This commit appears to work fine in all supported applications on Linux.

This commit resolves the gvim font rendering problems mentioned in
issue #113.
Fix vim matcher string comparison

Refs 2f361711febaa822e4eb221f809b710cd650bf5b.
Add Qtile widget
Fix updating issue with Qtile widget
Fix rendering of dividers without custom highlight group
Create now playing segment

The segment currently provides info from mpd or Spotify.
Update Arch Linux PKGBUILDs
Swap quotes in email_alert segment
Refactor now_playing segment slightly
Add Rhythmbox to now_playing segment

Closes #155.
Refactor segment rendering

This commit introduces the following changes to themes and segment
rendering:

- Spacer segments are now regular string/function type segments with
  "width": "auto" in the themes.
- The "rjust"/"ljust" properties have been replaced by the "width"
  option combined with a new "align" option.
- Renderer._render_segments() is now a generator which renders each
  segment separately, and assigns the rendered contents to
  "_rendered_hl" and "_rendered_raw" in the segment dict.
- Renderer.render() returns the segments by joining the "_rendered_hl"
  values for each segment.
- Spacer segment widths are calculated in the render() method, and
  assigned to "_space_left" and "_space_right" in the segment dict.
  These spaces are then applied in Renderer._render_segments().
- All space characters are converted to no-break spaces (U+00A0) in the
  "_rendered_hl" property.

Refs #113.
Refs #154.
Replace spaces *before* highlighting contents

The previous change obviously didn't work for renderers like the Pango
markup renderer since the highlighting code uses regular spaces and not
no-break spaces. Now spaces are replaced in the contents and dividers
only, and it's done before highlighting the segment so the added
highlighting code stays untouched.

Refs #113.
Remove support for persistent memoization

A different form of persistent memoization should be reimplemented later.

Refs #159.
Fix Unicode issues with mail segment
Add common player conversion methods
Update now_playing methods to use common formatting methods
Add cmus player to now_playing segment

Closes #162.
Make 'powerline' a namespace package

This will allow third-party plugins to use the 'powerline' namespace for
contributed segments.

Refs #3.
Fix “'NoneType' object is not iterable” error

Fixes #158