Rework patch_matcher and context_editor
Revert "Remove CDMA and GSMServiceStateTracker patches"

This reverts commit 66207c170451c8b49ca4ab3deaf3c148c61b8326.
Adding unused /common/cm_ContextImpl$45 and aosp_ContextImpl$41 patches

These were created for a different, and now unused, method. But I want to keep
them around in case I need them. The format of their name will stop them from
being picked up by any of our find statements or regex.
Modify 'split_patch_opd.py' to tae command-line arguments

Easy enough...it defaults to OpenPDroid params, but you can list the files
you want to split on the command line, useful if you are just adding patches
to the "reservoir". So:

./split_patch_opd.py
	Looks for all the OpenPDroid patches and splits them if ALL are present
./split_patch_opd.py services telephony-common2
	Just splits those two files

I also added a shebang to make the call more familiar for those new to python.
Add new hidden folder, the ".reservoir"

I agonized over this, I really did. It doesn't quite fit our domain-model.
But I couldn't think of anything easier, considering that we know ApG is in
its final form and must be worked around.

This model may change, but the reservoir is going to take the place of the
ALTERNATE patches which are now deprecated. Basically, I intend to offer support
for any open-source rom. If the Autopatcher fails to patch, then the user just
needs to ask the ROM developer for a link to his manifest and post their log.

Then, I or Urinophoria can build the module (so if services fails to patch, just
build the services with 'make services', takes maybe 15 minutes). The smali
patch we need to add can then be split out using the split_patch_opd.py and
tossed here into the 'reservoir'.

Other options include just adding them under .aosp, so if it is...BubbleVenom
ROM, then .aosp-bubblevenom might be fine. But I intend the reservoir to be
a place to stash needed smali patches that don't fit anywhere else. If you
need/want to add a file to the reservoir, you can simply add a new date. None
of the params inside the reservoir matter (too much). For now, we only have
patches/openpdroid/4.2/.reservoir/pa/20130703, but the 'pa' portion is just
for our information. As long as the patch keeps the name format (auto-generated
by split_patch_opd.py), it can be found by the new model.
Cleanup and Logging completed for testing

Error messages and test messages need to be updated, and the traces of
ALTERNATE patch needs to be removed. But seems to work like we would want!
Add framework2 to cm patches to support temasek builds (3.0.212)

I am almost to a prototype of what will make this method unneccessary. But
in short, if a $NAME.patch fails, the patcher will look for a $NAME2.patch and
try to patch using that.

I call it an ALTERNATE, and that is just what it is, a fallback patch to
serve when we know a subsect of roms fail reliably and we cannot use
provisionals to fix it. I only use it for real popular roms, or in this case
for @temasek, who besides being popular, has long been a supporter of the
project and has exposed many many of his users to the program.

Thanks to @DualJoe for all the input and direction
Fix tabletUI for CM10.1 and CM10.2 recent nightlies.
Change the Cygwin patch.exe manifest rules

It may not be woring for those with XP, maybe? This has been a nightmare.
Update PA-jellybean-legacy patches

Is not actually 100% fixing the bug reports..after their builds went live
PA added another commit to their settings$secure. The jellybean-legacy
people will have to wait until their next builds to use the new patches.
Fix my silly derp in CM10.2 tabletUI that made framework-res patch breakable.
New framework.patch for Slim, the rest are still good, updated auto_patcher and "latest"
Links went sideways on me, opted to just use full patches for safety's sake.
CM10.2 tabletUI patch for TabletStatusBar.smali should be more robust now!
Split the latest patches

This is done by running 'ap_scripts/run_split_and_move.sh'. This goes through
all OPD directories and splits all the patches, as well as removes any patches
that we don't need.

The newly installed 'reservoir' directories will need to be split by hand,
the run_split_and_move script only works for directories with all the OpD
JAR.patches ( services, framework, core, Mms.apk, telephony-common)
Version up to 3.1

This is for testing fellas. Let me know how your runs go, if you have time
to check it out. The script is run exactly the same for now, but you should
find that your rom (assuming it patched before) now patches no matter which
ROMTYPE you specify on the command line.

Essentially, we now use SMALI.patches instead of JAR.patches. When a SMALI.patch
fails, the program now searches for other possible matches and tries those as
well. It shouldn't take too much longer to run that it did before, either.

I experimented with matching the files by a content-based system, but it seems
that using the name is enough for now. You will see I had to use some new
processing scripts for the patches, I will prepare a document with some info
on them later. @Caldair, this process has not been ported to APKs yet, but
that should be pretty easy. Tae it for a spin if you can, and we will
then take a look at working it for tabletUI.

I have a bunch of commits here, and it would be pretty hard to see what I was
doing from commit to commit. Here is a diff of the changes squashed. This
is what will probably end up in the main branch when it gets merged.

http://pastebin.com/PRiYu4K0

Criticism and ideas/feedback welcome!
Add some spaces so the UPDATE.zip name can be grabbed with a double-click

Sometimes it is the little things...this really bothered me when testing this.
Remove all front-facing ROMTYPE messages

They are misleading at best...we now will be using a hodgepodge of patches
best to retrain and get people used to the simpler methods.

I cannot remove it completely, due to ApG, and it DOES have some benefits for
us as developers and testers. I would prefer to make it available only to
PRODUCTION=false (in .config, currently unused) environments. But it is
locked in as a param as long as we need/use ApG.
Remove my name from the updater-message

I have been meaning to do this basically since I added it. It isn't
accurate any more anyway.
Update some of the help text

After this goes public, I hope to be available to build patches for
basically any fail. The resistance before was that the effort was large and
could end up only helping one person, one week. But now that all patches are
available to be added to the patch library, things change.

My observation/contention is that there are only so many changes to these
low-level files being passed around, and that just about every rom is just a
hodge-podge of theses changes. So I believe that once we build up the library
just about every AOSP-based rom will fall in line.

We will see if I live to regret this. I hope to open up either a github issue
or a Google form, where I will be asking for LOG file, link to rom and link to
rom source code...with perhaps a policy of only supporting rom's with manifests
available. I certainly don't intend to debug build errors for every random ROM.