How do we Partition?
1. Define the pivot value as the contents of Table[First]
2. Initialize Up to First and Down to Last
4. Increment Up until Up selects the first element greater than the pivot value
5. Decrement Down until it selects the first element less than or equal to the pivot value
6. if Up < Down exchange their values
until Up meets or passes Down
7. Exchange Table[First] and Table[Down]
8. Define PivIndex as Down