Given the root of a binary tree, return the maximum path sum of any non-empty path. A path can start and end at any node in the tree.