WORK IN PROGRESS: Reorganize repository

This reorganization makes the repo layout match how I always organize my libraries, and roughly how many third-party libraries (both C, C++ and ObjC) generally organize their repos.

It's a work-in-progress, so don't merge this PR! I haven't fixed any include paths, project files or even figured out what should be public interface and what is implementation detail. I just wanted to let you know that I started this work and what I mean by "better repo layout", and so that you can tell me whether this is something you want done before I spend more time on it. Now I gotta sleep though, so I can't keep working on it tonight :)