Yes, all of that is possible, you’ll need to build something that can do Wi-Fi and integrates with the LIFX HTTP API, LAN API or any other 3rd party API that can control LIFX bulbs (e.g: lightsd of which I’m the author).
There is a bunch of existing products too, like maybe the Flic button would work for your second use-case. I’ve never used any of them though.
I just got my little packet of Flic buttons last week, and have been using them as on/off and white/color buttons in exactly this way. They are an awesome little product.