BO3 Branch Overhaul

- Added class WeightedBranchFunction extends BranchFunction
--- Weighted Branches spawn a branch that is dependent on the chance of
the other associated branches listed in the function
- Added class BranchNode
--- The three List objects of <Integer><CustomObject>and<Rotation> from
Branch have been reduced to one List object of <BranchNode> where each
BranchNode holds a single CustomObject, Rotation, and Integer
- Both weighted and normal branches now allow double values for branch
chances
- Extended Branch functionality, instead of a static chance out of 100
per branch, you may now configure the 100 value to be what you wish by
appending a value to the end of the function like:
Branch(...,branchZ, NORTH, 15, 25), where branchZ would have a 15 in 25
chance to spawn