C2 Branch

@dethe I think there ought to be a separate branch for the C2 development so that it's more clear what files belong to the new extension.  Having code that does nothing around is overly confusing and may linger longer than desired.

I can't seem to be able to request a pull for a new branch, so this one is pointed at master, but it'd be better to push this to a branch called `c2` or something like that imo.  Then `master` branch can be for stable code, and you can delete the c2 folder from there so that it's clear that code is not used in the old version.

I've also taken the liberty to shuffle code around in this branch, and use more sdk internals, let me know what you think!