To make the cake, blend flour, sugar, baking powder, and salt in large bowl. Add milk, butter, and vanilla and beat with electric mixer for 2 minutes, till well blended. Add egg whites and beat another 4 minutes. Fold in walnuts. Pour batter into 2 parchment-lined, greased 9" cake pans. Bake at 350 deg F. for 35-40 minutes, till cake tests done. Remove from oven and cool on wire racks for a few minutes, then pop cakes out of pans and continue cooling on racks while you make the filling and frosting.
To make the ganache filling, melt chocolate and cream together in double boiler, stirring occasionally, till well combined. Place in the fridge to cool for about 30 minutes, until it reaches a spreadable consistency (don't leave it in the fridge too long or it will be ROCK hard!).
To make the frosting, cream butter and cream cheese with a mixer till well combined and fluffy. Add sugar a bit at a time till a thick, creamy frosting forms. Finally, mix in vanilla and zest. Add more sugar or lime juice as needed to reach preferred consistency.
To assemble the cake, place bottom layer on plate. Spread ganache filling on top, leaving a 1/4-inch border around the edge (this will fill in when you press the top layer down). You will either have a very thick layer of filling or you will have extra ganache to play with. Set top layer over filling and press slightly to stick in place. Spread cream cheese frosting over cake.
If you're feeling fancy, shave some chocolate with a veggie peeler and sprinkle over the frosted cake.
Can also make cupcakes with the recipe, just pour batter into lined cupcake pan and bake for slightly less time. Frost with either the ganache or the cream cheese frosting. Would make 12 cupcakes.