Intersection Application
> Feargus O'Gorman

Introduction:
> All code in this application is my own, except for two external, open source projects which I utilised:
    > JSON for Modern C++ - https://github.com/nlohmann/json
    > Catch Unit Testing - https://github.com/philsquared/Catch
Both of these projects are header only implementations, so they were included directly into my project.

> This application uses a recursive solution for finding intersections involving multiple parent rectangles. As a result, for input rectangle sets that have a large number of intersections involving a large number parent rectangles, it can be quite resource intensive.

Building:
> The IntersectionApplication can be built using the buildIntersectionProject script (contains 1 simple command)
    > It will produce a binary called IntersectionApplication. This binary takes the input json file as its first arg, and optionally an output file as its second arg e.g.:
        > IntersectionApplication sample.json
        > IntersectionApplication sample.json output.out
    > If no second arg is supplied, output will be to console.
> The Unit Tests can be built using the buildIntersectionProject_UnitTest script (again 1 simple command)
    > It will produce a binary called IntersectionApplication_UnitTest. This binary takes no args and when executed will perform all unit tests for IntersectionApplication.
> This was written and built on Ubuntu 16.04 LTS using C++11 features and compiled with the following version of gcc: 
> gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
> It is not platform specific, but certain versions of MinGW on Windows will not compile it due to a bug in its implementation of std::to_string: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52015