Add utility subs: ps1_escape, ps1_invisible
Compiler: major rework

Changes in the PS1 compiler:
- Colors are now specified as a string in ARRAY refs.
- SCALAR refs are now strings that must be passed as is to the shell or that
  have been already properly escaped
- bare SCALAR strings are strings that will be escaped (bash: '\' are
  doubled)
The default prompt is updated for those changes.

Other changes:
- expand() is renamed to colored().
- In main loop, expand() is replaced with compact().
- compact() returns a single scalar (if possible, or else, dies) if
  called in scalar context.
Add a fallback PS1 if the PS1 construction dies
GitInfo cleanly reports if 'git' is not found before runtime

GitInfo now checks that 'git' is available during @PS1 construction
instead of at @PS1 evaluation.
README: show Travis-CI build status
Add angel-PS1_64x64.png

Converted from SVG to PNG using Gimp.
PngCrush-ed:
  pngcrush -brute
README: show the logo
Load PS1.pl from package AngelPS1::Prompt (instead of ::Config)
Fix bug in "angel on"

The PROMPT_COMMAND was not properly restored since the name of the
function has changed from 'angel-PS1' to '-angel-PS1'.
Add usage info to the angel controller (shell code)
build.pl: add a TODO
Add AngelPS1::Shell and AngelPS1::Shell::bash

First step of a pluggable shell support.
Use AngelPS1::Shell in bin/angel-PS1

Second step towards pluggable shell support.
Don't call AngelPS1::Shell as there isn't one.
build.pl: use the Perl interface of App::FatPacker

... instead of the command-line interface, for a faster build.
build.pl: ignore selected directories

... and so allow other directories to be updated in 'devel' and reported
to 'release'.
Improve the copyright and usage messages
Move the shell code to AngelPS1::Shell::bash
Move special bash symbols to AngelPS1::Shell::bash

The AngelPS1::Prompt::Default is now shell-independant.

This is (hopefully) the last step for a full shell-independent core.
bin/angel-PS1: remove the last hard coded bash shell check