Pulse Shape Discrimination Algorithms: Survey and Benchmark