Updated the return types of clone method in Order subclasses so that the caller doesn't have to type cast the returned instance

Updated the return types of clone method in Order subclasses so that the caller doesn't have to type cast the returned instance
Updated OrderService.saveOrder to reject previous orders that have differing concepts or drugs for drug orders - TRUNK-4217