How exactly bitcoin addresses work?
Bitcoin addresses are a specific encoding (base 58 check encoding) of the RIPEMD160 of the SHA256 of a public key. This hash is known as the hash160 of a public key. When you enter an address into your wallet, it decodes the address into the hash160 and builds the proper output based upon the version number (the thing that decides whether an address begins with a '1' or a '3'). This output is used in your transaction.
what determines whether an address is for bitcoin and not for it's clones or some altcoins?
Nothing does. Generally a different version byte is chosen so that the prefix of the address will be different and thus distinguishable. However some altcoins do use the same version bytes and thus are indistinguishable from a Bitcoin address (e.g. litecoin's p2sh addresses are the same as bitcoin's). Other than that there is no difference as the addresses are still the base58 check encoding of the hash160 of an ECDSA public key.
What happens if you send bitcoin to other addresses or vice versa?
The Bitcoin goes to a normal output. Generally the coin is considered burned, but it is still possible to access it because the receiver of the transaction can simply import their private key from another coin and import it to the coin that was actually sent.
Is it possible to create an address offline? if so then how the system knows if it can deposit bitcoins in it or not?
Yes. Addresses do not need to register with anything to indicate that it can be sent to. As I said earlier, addresses are simply used to build transaction outputs. Transaction outputs don't care whether they are actually spendable, they just have to be valid outputs.
Now what if a group of few thousands members decide to clone bitcoin and have control over a few considerably large volume exchanges and do trades then how can we tell the difference?
The transactions made with the cloned coin will not have the same blockchain as Bitcoin. The transactions that they try to spend from do not exist on the Bitcoin network so their transactions are considered invalid.
Or what if a bitcoin node which has the ledger tries to clone bitcoins by using the blockchain information in hard drive? or they just use blockchain as their clone's block chain?
At the time of any fork of the blockchain, the attackers blockchain will diverge from the Bitcoin blockchain. If they try to steal coins that are not theirs, Bitcoin nodes will simply reject the transactions as invalid. Sure they will have the coins on their blockchain, but no one cares about that because that blockchain is not Bitcoin's.
What should people know when using different wallets and exchanges?
They all must follow the consensus rules in order to be using Bitcoin.
What happens if 50 nodes go offline or in a fake online environment and do transactions and do the confirming themselves?
Then they have forked the blockchain and their transactions and blocks will not be considered valid. With the current difficulty, their chain would lose.
is it possible for miners to predict the hashes of future to be bitcoins and use it to create them and then the network verify those coins as legit ones?
No, that is not how Bitcoin works. First of all, hashes are randomly distributed, so you cannot predict a hash. Secondly, Bitcoins are not objects. Rather they are values assigned to transaction outputs.
Where exactly new bitcoins generated by which mechanism that is in nodes wallet software?
When a miner mines a block, they include, as the first transaction in their block, a coin generation transaction. This transaction has no inputs and creates one or more outputs whose values are at most the sum of the block subsidy (currently 12.5 Bitcoin) and all of the transaction fees paid by the transactions in the block.
which one of nodes creates the problems for miners to solve?
No node does that. Miners don't actually solve problems. What they do is they build an 80 byte block header which consists of a version number, timestamp, the previous block hash, merkle root of all transactions in the block, the current target, and a nonce. Then that is hashed with SHA256 double. This hash is then compared to the current target. If it is less than the target, then the block is valid and broadcast to the rest of the network. If it is invalid, the miner changes something in the header (usually the nonce, then the merkle root) until a valid hash is found.
and what if someone finds a way to make the system favor some selected miners?
The Bitcoin network does not choose a miner to win. All miners attempt to find a valid hash for the current block. It is a competition, and only one wins. If multiple miners solve a block simultaneously, the block considered the winner is the one that is built on top of next. A sustained fork is incredibly unlikely to happen.
I highly suggest that you do your own research into how Bitcoin works. There is lots of documentation on all of the technical inner workings of Bitcoin. A good place to start is the developer documentation on bitcoin.org.