CoreMotion

@clayallsopp @markrickert As promised!  Adding specs next (and a couple more things to do), not merge ready, but wanted to have eyes on it before I got too far along.