Major refactor

Supports multiple personalities (borrowed some code from strace) and allows
for filters to more easily be added or removed.

Implemented 'safe memory'.  Sets up a read only memory mapping in the client
address space.  This prevents other processes/threads from modifiying the state
so parameters can be copied into safe memory and vetted in a secure manner.
finished updating everything.  everything ought to be functional now
merge
Merge https://github.com/Ben0mega/jail into HEAD

Conflicts:
	Makefile
	config.h
	filterer.cpp
	filterer_file.cpp
	flags.h
	jail.conf
	jail.cpp
	report.cpp
	report.h
	syscall_tab.cpp
Merge github.com:msg555/jail into HEAD
Added -Wall and -Werror
Added JSON reporting
Fixed JSON reporting format

Added extra process termination information to report including maximum
amount of memory mapped and total wall time.
Fixed thread/process tracing code
Added wall time constraint flag support
type in flag description
DEBUG macro no longer used
Rebranded jail to sjail (system call jail).

The new name should draw parallels between itself and strace.

Also fixed a bug where no conf was being ignored.
Changed sjail to use TRACESYSGOOD
Made ptrace use TRACEEXEC to filter extra SIGTRAPS.

Made get_passive not be ignored in some situations.

Made process_state cache syscall value.
Allowed dup calls
Added memory allocator for safemem

Needed so concurrent safemem allocations from different processes will
not interfere with each other.
commit allocator.h
Converted to using c++11
caught bad alloc