:desc: Deletes item with ID = itemID, takes care of IDs collection
           :param itemID: The item ID to delete
           :type itemID: int
           :raises: ValueError
           :returns ID: The ID of the deleted item
           :rval: int

def deleteItem(self, itemID):
        """
           :desc: Deletes item with ID = itemID, takes care of IDs collection
           :param itemID: The item ID to delete
           :type itemID: int
           :raises: ValueError
           :returns ID: The ID of the deleted item
           :rval: int
        """
        collections = self.get_data_collections()

        query = {"currentMax": {"$exists": True}}
        currentMax = self.noteDB["IDs"].find_one(query)['currentMax']
        query = {"unusedIDs": {"$exists": True}}
        unusedIDs = self.noteDB['IDs'].find_one(query)['unusedIDs']

        if (itemID > currentMax) or (itemID in unusedIDs):
            raise ValueError("ID {0} does not exist".format(itemID))

        # Find document with ID
        for coll in collections:
            self.noteDB[coll].remove({"ID": itemID})

        if currentMax == itemID:
            self.noteDB['IDs'].update({"currentMax": currentMax},
                                      {"currentMax": currentMax - 1})
        else:
            unusedIDs.append(itemID)
            self.noteDB['IDs'].update({"unusedIDs": {"$exists": True}},
                                      {"unusedIDs": unusedIDs})

        return itemID