After thinking about the election and results for some time and analysing the situation more, here are my final conclusions:
In short, BJP lost because they cannot separate National politics with Local politcs.
BJP lost not to Nitish, not to Congress or secularism or intolerance or whatever bullshit the pseudo-intellectuals on electronic media run, but to Lalu Prasad Yadav.
Compare and contrast Modi's speeches with Lalu's. Despite what the electronic media tries to imply, Modi only ever talks about development, development, development. On the other hand, time and time again Lalu is capable of winning elections because he knows what his people want. His speeches and talks are always about how Yadavs are destined to run Bihar, are the superior caste, deserve the most reservations, etc. Lalu knows how to play the caste game, while BJP doesn't even try and utterly fails at it. For example tying up with some washed up leaders such as Manji who wields no power at all.
Caste based politics plays much less emphasis on National politics, but still governs politics at the local state level. BJP does not understand this. Calling in Modi to give speeches about development and reform were never going to work in a state that is still 87% rural and still runs on a caste based mindset, while the opponent was shouting Caste, Caste, Caste.
Hopefully BJP understands and learns this lesson. Here is what they should have done:
1. Run for all 243 seats. Don't waste your time and political capital with unknown local parties whose stupid commentary might damage the campaign. Manji's non-stop insistence about 'accepting' a CM position did nothing but hurt BJP overall.
2. Play Dirty Caste Politics. Loser's get no awards for running clean campaigns free of filthy political caste campaigns. The media doesn't really care and will be anti-Modi anti-BJP anyway.
3. Have a local caste leader like a Yadav prominently featured as CM. This will create problems in the long-run I'm sure, but winning elections are the most important task right now. This will cause confusion in vote base. The mind of a voter will be: Lalu tells me that BJP is anti-Yadav, anti-Reservationism, but they have a Yadav as CM?? Something is not right.
4. KEEP A DUAL STRATEGY. Let local allied caste leaders play the unholy caste game, but have national leaders like Modi come in and talk about development and national vision. This mix of local politics, national vision will be a big hit with voter-base. Voters want both development of nation, as shown by 2014, but want local political aspirations and caste politics fulfilled. So give them what they want. Don't be so foolish as to think people will abandon generations of local caste-ism in favour solely of national politics and vision (Edit: I feel like this point needs to be emphasized for people on forums, we are here because we want to see a strong, shining India, so we tend to forget the local state-level aspirations that govern local elections and only think about how things would affect national vision). And since the comments of national leaders will be separated from local ones, Modi can keep a clean image. What is the media going to do? Accuse local BJP-allied Yadav leaders of playing local Yadav politics? Nobody would care. This was the the single biggest failure of BJP strategy and Amit Shah. This is what he does not realize, people are not yet ready to leave local caste politics. You cannot treat Local elections the same as than National ones!
Going forward 2016 will be a difficult time. But if they properly play the local politically game and mix it in with national level politics and vision from Modi and the centre, then they can win major gains in even difficult elections such as Assam and West Bengal. Remember that all elected officials have a mid-term hit in popularity. This is natural. If anything it would be good if the opposition got cocky and certain of themselves to the point where they underestimate the BJP going forward.