Created a working Coloring Module.

For those wondering, the goal of this module is to replace Term::ANSIColor
for the most common applications with a object based implimentation which
allows for embeded colors. That is, a
PushColor PushColor Text PopColor Text should work.

Thus, This Module creates colored objects.
The objects keep up with the affected text, the color,  if we wish to push their color, and if we should pop
their color. When we need the colorized text output, we simply pass the objects to the ColorBurn method
which resolves all the pushes and pops.
This allows not only for Multiple colors in the same statement,
but also for Embeded colors.
Eg. usage:
\#!/usr/bin/perl
use strict;
use warnings;
use BCscripts::Debug::Color qw{ColorBurn Colorize};
use feature qw{say};
my $firetruck= Colorize(
        Color=>RED,
        Text=>[q{Firetrucks are Red}]);
my $algy=Colorize(
        Color=>GREEN,
        Text=>[q{Algy is Green}],
        Push=>1,
        Pop=>1);
my $ocean=Colorize(
        Color=>BLUE,
        Text=>[q{The Ocean is Blue},$algy],
        Push=>1);
my $fish=Colorize(
        Color=>MAGENTA,
        Text=>[q{Fish are not Purple}],
        Push=>1,
        Pop=>1);
say join(' ',ColorBurn(q{The world starts on RESET,},
$firetruck,			# This Colors the bottom of the stack Red
q{And Firehydrants too,}, 	# Since we didnt Pop, The color is preserved
$ocean,				# Here we push Blue onto the stack
				# coloring 'The Ocian is Blue' Blue
				# Dive into Algy which pushes and pops the color green
[q{And though Waves are Blue},	# Since algy did a pushpop, we are back to blue here
Colorize(Color=>RED,Text=>[q{And Firetrucks are Red}],Push=>1,Pop=>1)],
q{^v^w},			# Since Firetrucks did a pushpop, we are back to blue here
$fish,				# Magenta Fish PushPop
q{^v^w},			# Blue
Colorize(Pop=>1),		# Here we Pop blue. Bringing us back to Red
q{But Out of the watter, Things are red again},	# Because red never poped
Colorize(Pop=>1),				# An empty stack does an auto RESET
q{But an extra POP, Resets your world again.}
));
__END__
You may also use $ocean->ColorBurn(q{Any text you wish to appened}).
Just Pushing means that all elements after will have that color on its stack
Just poping delets an element from the stack
Push Poping localizes the change
The stack is not Localized to the Colorized element.
	This means that unpoped Pushes from Colorized elements in the Text
	may be poped insted of the Colorized object containing them.
	The Next commit will probably contain a easy PushPop Call
I may add wraper functions to override print and say for transtparent adoption of this module
along with color calls similar to Term::ANSIColor, Though I wont use it myself
(since they are rather important functions).
I am also debating weather we should AutoReset when we pop too many
times, Stick with the bottom of the stack (which is Reset if you didnt
overwrite it.) or through an error.
Added CapColor and renamed ColorBurn to BurnColor.

CapColor Encapsulates the color stacks. This way all embeded objects
will still get the stack and can pop or push as mucha as they want but
when they are finished and their parents closing paren is reached, the
parrents pop will work or the parrents color will return.
--
Added Easy ColorPush ColorPop ColorLocal and ColorWrite notation for
Colorizing text (Colorize is just a exportable new function)
Usage: ColorPush(Color,TextArray).
Made to replace Term::ANSIColor's pushpop.
--
Added ANSIpushpop export tag which uses ANSIColor's push
pop function's names for ease of conversion/use.
--
Giving up on overriding print for now. it looks like print and printf
are a pain to override.