FETools::get_fe_from_name() implemented for nonzero codimension

In addition to the new functionality, the internal structures mapping names to finite element factories have been improved, thus avoiding several specializations of functions.

This pull request fixes #86 (issue)
I understood later on why you wanted the new base class. I think there's nothing wrong with deriving from Subscriptor, but here's another option that you could choose to get at the dimension independent array you need for lookup later on: Instead of using
```
  std::vector<std::vector<std::map<std::string,std_cxx1x::shared_ptr<const Subscriptor> > > >
```
for the table_of_maps[dim][spacedim] you could do something along the lines of (for only one template argument for the moment)
```
  std::tuple<void,map<string,FEFactoryBase<1>*>, map<string,FEFactoryBase<2>*>, map<string,FEFactoryBase<3>*>>
```
You would then do
```
  table_of_maps.get<dim>()
```
instead of
```
  table_of_maps[dim]
```
This avoids the (otherwise unnecessary) base class along with the dynamic_cast.

I don't care which way around you do it, though. The way above seems a bit more elegant -- you don't have to abuse poor Subscriptor this way.
```
to get at the std::map