cmdlib: Add checks for attach/detach

Add checks for:
* number of arguments,
* instance's compatibility with disk template/nodes

and update existing ones.
cmdlib: Add core attach/detach logic

Extend _ApplyContainerMods to accept an attach and detach function.
These functions operate in the same way as the add and remove functions,
minus the disk creation and disk removal parts.

Also, add two functions that should raise an exception if one attempts
to attach/detach a NIC.

Finally, update the tests in order to work with the new
_ApplyContainerMods function.
config: Remove checks for detached disks

It is not an error sign for a configuration to have detached disks, since they
can be handled from now on by the attach/detach operations.
burnin: Test if attach/detach works properly

The attach/detach test is merged with the add/remove test. The test is
the following: an extra disk is added in each instance and is given a
random name. Once it has been added successfully, we detach it and check
if the instance operates normally. Then, we pick instances randomly and
attach a detached disk to them, using an algorithm that matches a disk
to an instance based on its disk nodes. Then, we remove the disk.

Also, move the start/stop at the top of the tests, since the start/stop
functionality is erroneously used first by other functions (e.g. rename)
and then tested on its own.
tests.config: Add test for GetDiskInfoByName

Check if the GetDiskInfo and GetDiskInfoByName functions operate as
expected.
tests.cmdlib: Test index operations

Test if the GetIndexFromIdentifier and InsertItemToIndex functions work
properly.
tests.opcodes/client: Add test for constants

Also, test if the ConvertNicDiskModifications function operates as
expected.
tests.config: Test attach/detach wrappers

Test if the AttachInstanceDisk and DetachInstanceDisk wrappers update
the configuration as expected.
tests.cmdlib: Check if attach/detach checks work

Also, update the mocked config to create orphan disks for attach
purposes.
tests.cmdlib: Extend tests for _ApplyContainerMods

Test if _ApplyContainerMods works properly in attach/detach scenarios.
tests.cluster: Add test for VerifyConfig

Check if VerifyConfig complains about orphan disks.
doc: Extend the design document for disks

Add more implementation info about the attach/detach operations and provide
examples for their invocation from the command line. Also, mention that detached
disks should be considered normal for a configuration and therefore, that we
remove the associated checks.
man: Update the gnt-instance man page

Add instructions on how to use the attach/detach options.