Determining the Number of Clusters in Any Arbitrary Dataset Containing Reasonably Separated Data Clusters