Fixed Lucene.NET exception serialization

The fact that Lucene.NET exceptions aren't serializable is causing havoc with error logging amongst other problems.

I've added two tests to demonstrate the issue and fixed all of the exceptions.

All exceptions are now capable of serialization and comply with the Microsoft guide to custom exception design at: http://msdn.microsoft.com/en-gb/library/vstudio/ms229064(v=vs.100).aspx

This is my first contrib to this project so I appreciate any feedback and apologise in advance if I've violated any guidelines.