now compiles using c++14
removed stupid shared_ptr requirement

This means the code is a lot cleaner and easier to manage for me. I
really don't need shared_ptrs everywhere, especially if I'm only
changing the data in a subroutine and not changing data
ownership. Shared ptrs are still used for the x vector for
compatibility, though that might change as well.