Reworking of binary operators

- Eliminates re-parsing of operator strings
- Reduces much redundant code

Results

1. smaller binaries
2. less runtime memory usage
4. faster runtime
Clean up Prefix() implementation

Reducing redundant code
Reduce redundant parsing / error code
Work around bug in gcc 4.6 for initializer_list

Hopefully also fixes MSVC 2012
Clean up compiler warnings
Merge remote-tracking branch 'origin/develop' into performance_test