Always forward declare BranchKey as class

The clang compiler complained that BranchKey was forward declared as a struct but in its actual declaration it was a class.