Filetype, desc, icon -- third try

Some test cases:

```python
test_filenames = ('ignore.me/Readme.another.dead.fish.upon.the.landing',
                  'ignore.me/myfile.html.gz',
                  'ignore.me/myfile.htm.old',
                  'ignore.me/README.macosx',
                  'ignore.me.dat/ignore.dirname',
                  'ignore.me/trailing.period.',
                  'ignore.me/trailing.slash/',
                  '', None, 0, [], {})
for filename in test_filenames:
    print('{} ==>\n\t{}'.format(filename, get_file_info(filename)))
print('Tests complete.')
sys.exit()
```
It is just a tuple (read-only, super fast, super efficient) with some naming conventions built in.  Tuples are faster and more efficient than classes.  Do some timeit's on namedtuples.  They are really perform.  If you want to unpack the tuple into instance variables, that is easy to do but it will slow you down and consume more RAM.