Add AngelPS1::Chrome
Flags and Color are subclass of AngelPS1::Chrome
Add a first testcase for AngelPS1::Chrome
More Chrome tests

Looks like we have an issue as the tests do not pass on most
not-so-old perls. 5.18 is ok.
Chrome: workaround perl < 5.16 bug (inlining+overloading)

Old perls (< 5.16) had an issue in constant inlining combined to
overloading of mathematical operators. The result is that Red+Bold
was inlined into a random number.
The workaround is to not use constant.pm in < 5.16 case, and instead
use closures that will not be inlined.
31-chrome.t: more tests
Chrome: minor optimization

Do not use map() for a 2 elements list.
31-chrome.t: more Chrome tests
31-chrome.t: more Chrome tests
31-chrome.t: more tests
Chrome: add POD
Chrome: MAJOR REFACTORING !!!

Huge refactoring for simplification:
- AngelPS1::Chrome::Flags disappears. Flag constants (Reset, Bold...)
  now return AngelPS1::Chrome objects.
- AngelPS1::Chrome::Color objects have now the same layout as
  AngelPS1::Chrome. Inheritance now applies also to the internal
  representation.

This refactoring will also allow to implement ${} overloading.
Chrome: add ${} overloading

Implement ${} overloading. This allows to use Chrome expression easily
in strings:
    say "normal ${ Red+Bold } RED ${ +Reset } normal";
Chrome: simplify operator overloading decl in Chrome::Color
31-chrome.t: more tests (notes actually)
Chrome: redo overloading in child class only for perl < 5.18
Chrome: add new reset constants: ResetFg, ResetBg, ResetFlags
Chrome: fix wrong stringification for Reset flag

Fix stringification error when the Reset flag is the only flag given
along with colors.
Chrome: cache built Chrome::Color objects to reduce memory

Should reduce creation of short lived objects, and speed-up color
creation when a color is rebuilt from different places.
Chrome: add ->fg, ->bg, ->flags to extract components