Performance based improvements and test cases

Made some tweaks to sdstoupper & sdstolower to make sure they run as fast as possible... Everything is done within function and avoids the standard array slow down trick by using pointer based dereferencing