[WIP] @1aurabrown => Switch View

I'm holding off on calling this "done" because of this (serious) problem with our testing suite: https://github.com/artsy/eidolon/issues/52

However, it's in an OK place to start a code review. 

Also I added in an Objective-C category taken from eigen. I'll probably swiftify it at some point. 
so, my math for this is sound, but we've run into the problem before that things move one pixel if the entire switch view isn't evenly divisible by the number of buttons. say I try to put 3 buttons in a 100px switch view, one of those buttons will have to get an extra pixel but it's up to autolayout to determine which one, and it's not consistent. causes jumpiness when interacting with other elements. This is all nbd if you can give the switch view a width that you know will be divisible, but when trying to constrain the switch view relative to an arbitrary screen size (like 50 px from each edge of it's parent view or something) the problem can come up again. I'm not sure what the solution is and I couldn't figure out better constraints, but maybe you guys have some ideas?