Implement missing functions in Dequeue.


git-svn-id: https://fricas.svn.sourceforge.net/svnroot/fricas/trunk@1670 b0c55286-4f34-0410-a049-a1e7e93b0762
Documentation of matrix slicing
More slicing functions for two dimensional arrays
Fix a logical typo
Add a comment about some slicing methods
More slicing operations: allowing lists and lists of segments
Slicing of single rows and columns

These two functions return rows and columns as instances
of % instead of Row and Col domains like the row, column
commands do.
Even more slicing functions

Now we have the full grid of possibilities implemented: An instance 'M' of
a domain satisfying 'TwoDimensionalArrayCategory' is, in the simplest case,
indexed by two selectors like:

  M(u, v)

where both u and v can be any of:

- A single Integer
- An Integer Segment
- List of Integers
- A List of Integer Segemnts

All these functions can not only slice out subsets of M but also create
new, larger versions by repeating some parts as specified by repeated
selector entries.
Assignment to slices, part 1
Fix a logical typo
Assignment to slices, part 2
Add a comment about some slicing assignment methods
Assignment to slices, part 3
Fix two small typo bugs
Even more slicing assignment functions

Now we have the full grid of possibilities implemented: For 'M', 'N'
two instances of a domain satisfying 'TwoDimensionalArrayCategory' we
can write the following assignment to a subset of 'M'

  M(u, v) := N

where both selectors u and v can be any of:

- A single Integer
- An Integer Segment
- List of Integers
- A List of Integer Segemnts
Slicers for selecting 'all rows' and 'all columns'
Handle empty segments in 'check_seg'

Before this change, the second and fourth example failed
while the first and third did not. I think ignoring but
not failing on empty segments is the correct fix.

m([1..2,2..1], 1)

         +1+
   (90)  | |
         +4+
                                                        Type: Matrix(Integer)
m([1..3,3..1], 1)

         +1+
         | |
   (91)  |4|
         | |
         +7+
                                                        Type: Matrix(Integer)
m(1, [1..2,2..1])

   (92)  [1  2]
                                                        Type: Matrix(Integer)
m(1, [1..3,3..1])

   (93)  [1  2  3]
                                                        Type: Matrix(Integer)
Always check for empty segments if segments are in the input
Fix a typo