ApplicationLayer, NLE, InputProcessor, stability improvements

1. bindApplicationLayer and bindInputSupply were removed and replaced
with NLE constructor arguments
2. NLEApplicationLayer was moved out of NLE
3. NLEGlfwApplicationLayer now creates and manages NLE
4. added NLE run, stop, and isRunning methods
5. added InputProcessor run, stop and isRunning methods
6. NLEApplicationLayer now contains only essential controls
7. Parent container is no longer passed as argument to children inside
the parent constructor
8. All pointers that require sharing now use shared_ptr