add first operation to table modifier swap

part of #21
add defensive reconstruction of TEST_DATA to help avoid aliasing
add append to  operation
add prepend to operation
add prepend operation
added a replace function
added a replace function
add an add function
add ability to prepend_to with  multiple values using a table modifier
add ability to prepend multiple values suing table modifier
add append operations with multiple values in table modifier
add table modifier to set of steps called during table extraction

note: the table modifier still doesn't work well with complex
expressions
use super class extract and use super constructor
Merge branch 'clean_up' into hbond-cs

Conflicts:
	xcamshift/src/table_builders/table_extractor.py
apply DRY cleanup of extract and __init__ to extractors to call super
remove erroneous print statement
allow for empty patch files
isolate data for finding tables in structure of their own

to reduce argument list length when isolating template finding code
remove function call with unused result
add a check that the key is in the key path rather than crashing